我有这个数据集,
new_df = pd.DataFrame( {
"Country" : ["C1", "C2", "C1", "C3", "C1", "C3", "C1"],
"City" : ["ISB", "KHR", "LAH", "DUB", "RWP", "RWP", "RWP"],
"Sales" : [10, 25, 40, 20, 45 , 43,10] } )
我是在哪做的
grouped_new_df = new_df.groupby(['Country', 'City'])
new_new_df = grouped_new_df.agg({'Sales': {'Mean': np.mean, 'Sum':np.sum}})
new_new_df.index
MultiIndex(levels=[['C1', 'C2', 'C3'], ['DUB', 'ISB', 'KHR', 'LAH', 'RWP']],
labels=[[0, 0, 0, 1, 2, 2], [1, 3, 4, 2, 0, 4]],
names=['Country', 'City'])
我不明白这些标签labels=[[0, 0, 0, 1, 2, 2], [1, 3, 4, 2, 0, 4]],
是如何映射的?
答案 0 :(得分:4)
labels
是levels
的相应索引。例如,Country
中多索引的第一级。如果您查看levels
,那是
该列表包含C1
,C2
和C3
。因此您的数据是C1,C1,C1,C2,C3,C3
,即列表[0,0,0,1,2,2]
的索引[C1,C2,C3]
。
相同的逻辑适用于City
级别
答案 1 :(得分:1)
在您的示例中,如果您想要index
level=1
的值,则可以。
new_new_df.index.levels[1][new_new_df.index.labels[1]]
Out[230]: Index(['ISB', 'LAH', 'RWP', 'KHR', 'DUB', 'RWP'], dtype='object', name='City')