重新索引后的数据帧不显示多索引中的所有项

2024-05-28 23:34:30 发布

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

主要目标-使用包含新值的新多索引重新索引数据帧

In[34]: df = pd.DataFrame([[1,2,3], [1,4,2],[2,3,4], [2,2,1]], columns=['a', 'b', 'c'])
In[35]: df = df.set_index(['a', 'b'])
In[36]: df.index
Out[36]:
MultiIndex(levels=[[1, 2], [2, 3, 4]],
           labels=[[0, 0, 1, 1], [0, 2, 1, 0]],
           names=[u'a', u'b'])

In[37]: df_ri = df.reindex_axis([1,2,3,4], level='b', axis=0)
In[39]: df_ri
Out[39]: 
     c
a b   
1 2  3
  4  2
2 3  4
  2  1
In[40]: df_ri.index
Out[40]: 
MultiIndex(levels=[[1, 2], [1, 2, 3, 4]], #all new values are stored here but are not visible in df
           labels=[[0, 0, 1, 1], [1, 3, 2, 1]],
           names=[u'a', u'b'])

最后-df输出不变。当我查看新索引时-它有新的值,但它们没有显示。我可以通过使用新索引创建新的df,然后将旧的df与新的df合并来避免这种情况,但这不是最好的方法。有什么建议吗?你知道吗


Tags: 数据in目标dfindexlabelsnamesout

热门问题