哈士奇WWW
这只是为多索引数据帧的初学者分享一个非常基本的概念。“空”项是多索引视图的一部分,仅在您输出 df 时出现,它有助于您理解层次结构。如果您输出隔离的 Multiindex 类,则没有项目是空的。因此,索引项永远不会真正为空,并且“空”字段仅出现在 df 输出中:如果“A_idx”索引被分配给多个“B_idx”索引值,则“A_idx”索引不会重复,因为它是 parent。如果“A_idx”索引指向多个值行,而“B_idx”索引正在重复,B_idx仍然重复,因为它是 child。如果您使用df.head(10)并发现“空”索引项在第 1 行,您也可以在 df 中使用 快速检查df.iloc[1].reset_index()。您会看到索引项不为空。在下文中,“first”和“second”是索引名称,因为它们在同一输出行上,所以看起来具有同等的父级权利,但实际上层次结构是从左到右的。first secondbar one 0.289163 -0.464633 -0.060487 two 0.224442 0.177609 2.156436baz one -0.262329 -0.248384 0.925580foo one 0.051350 0.452014 0.206809 two 2.757255 -0.739196 0.183735 three -0.064909 -0.963130 1.364771qux one -1.330857 1.881588 -0.262170感谢您提供示例,请转到Access last elements of inner multiindex level in pandas dataframe。这实际上意味着:first secondbar one 0.289163 -0.464633 -0.060487bar two 0.224442 0.177609 2.156436baz one -0.262329 -0.248384 0.925580foo one 0.051350 0.452014 0.206809foo two 2.757255 -0.739196 0.183735foo three -0.064909 -0.963130 1.364771qux one -1.330857 1.881588 -0.262170####如何相应地创建层次结构的示例。传递给 set_index() 的列列表的顺序以相同的顺序创建层次结构。您可以在我从pandas multiindex reindex by rows借用的一个小示例中查看这一点,其中 df2 覆盖了两个索引的切换。只有 df 显示秘密“空项目”,请参阅df与df2输出:df = pd.DataFrame({'month': [1, 4, 7, 10], 'year': [2012, 2012, 2013, 2013], 'sale': [55, 40, 84, 31]})df2 = df.copy()df=df.set_index(['year','month'])df2=df2.set_index(['month','year'])df: saleyear month 2012 1 55 4 402013 7 84 10 31df2: month year sale0 1 2012 551 4 2012 402 7 2013 843 10 2013 31df.index输出:MultiIndex([(2012, 1), (2012, 4), (2013, 7), (2013, 10)], names=['year', 'month'])或者:df2.index输出:MultiIndex([( 1, 2012), ( 4, 2012), ( 7, 2013), (10, 2013)], names=['month', 'year'])看看 df 中的级别:df.index.levels[0]Int64Index([2012, 2013], dtype='int64', name='year')df.index.levels[1]Int64Index([1, 4, 7, 10], dtype='int64', name='月')df2.index.levels[0]Int64Index([1, 4, 7, 10], dtype='int64', name='月')df2.index.levels[1]Int64Index([2012, 2013], dtype='int64', name='year')如果要检查或阐明输出视图中层次结构的不同级别,请选择一行并重置索引:df.iloc[1].reset_index()输出: index 2012 40 sale 40或者:df2.iloc[1].reset_index()输出: index 4 20120 sale 40