我有一个dataframe,它的时间值和组值作为列索引,由运行中的时间值索引。
我希望按政变列分组,并在每个组中的位置上添加一个二级整数索引。
示例数据框架:
import numpy as np
import pandas as pd
data = np.array([np.random.randint(0,10,20), np.arange(0,20,1) ])
dataset = pd.DataFrame({'group': data[0, :], 'time': data[1, :]})
dataset.index.name = 'global index'
dataset.sort_values(['group', 'global index'], axis=0)现在,我不知道如何添加第二级索引,而不使用for循环和索引对每个组进行迭代。
发布于 2020-06-30 18:05:45
IIUC,你知道:
import numpy as np
import pandas as pd
np.random.seed(123)
data = np.array([np.random.randint(0,10,20), np.arange(0,20,1) ])
dataset = pd.DataFrame({'group': data[0, :], 'time': data[1, :]})
dataset.index.name = 'global index'
dataset = dataset.sort_values(['group', 'global index'], axis=0)
dataset = dataset.set_index((dataset.groupby('group').cumcount()).rename('2nd Index'), append=True)
dataset输出:
group time
global index 2nd Index
8 0 0 8
11 1 0 11
12 2 0 12
16 3 0 16
17 4 0 17
3 0 1 3
7 1 1 7
9 2 1 9
19 3 1 19
0 0 2 0
1 1 2 1
4 0 3 4
14 1 3 14
15 0 4 15
18 1 4 18
2 0 6 2
6 1 6 6
5 0 9 5
10 1 9 10
13 2 9 13发布于 2020-06-30 18:12:48
这行得通吗
import numpy as np
import pandas as pd
data = np.array([np.random.randint(0,10,20), np.arange(0,20,1) ])
dataset = pd.DataFrame({'group': data[0, :], 'time': data[1, :]})
dataset['global index'] = dataset.index
dataset.set_index(['group', 'global index']).sort_values(['group', 'global index'])https://stackoverflow.com/questions/62663447
复制相似问题