Pandas多索引地图中的标签是怎样的?

2024-06-02 07:55:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个数据集

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]  } )

我做这件事的时候

^{pr2}$

enter image description here

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]],是如何映射的?在


Tags: 数据citydfnewlabelscountrydubpd
2条回答

labels是您的levels的各自索引。例如,Country中多重索引的第一级。如果你看一下levels,它就是 包含C1C2、和{}的列表。所以您的数据是C1,C1,C1,C2,C3,C3即列表[C1,C2,C3]的索引[0,0,0,1,2,2]。在

同样的逻辑适用于City级别

在您的例子中,如果您想要indexlevel=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')

相关问题 更多 >