reindex之后的Dataframe不显示multiindex中的所有项目

时间:2014-10-21 10:49:02

标签: python pandas

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

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合并来避免这种情况 - 但这不是最好的方法。有什么建议吗?

0 个答案:

没有答案