Pandas堆栈/堆栈错误的结果

时间:2018-08-14 20:12:44

标签: python pandas

我有这个Pandas DataFrame:

              rnd  non-rnd
first   last              
andrew  wood    0      123
bob     wood    0      234
charlie wood    0      345

有人可以解释以下两个操作之间的区别吗?

In [1]: df.unstack(level=0).stack(level=0)
Out[1]: 
first         andrew  bob  charlie
last                              
wood non-rnd       0    0        0
     rnd         123  234      345

In [2]: df.unstack(level=0).sort_index(axis=1).stack(level=0)
Out[2]: 
first         andrew  bob  charlie
last                              
wood non-rnd     123  234      345
     rnd           0    0        0

第一个显然是错误的。这是一个错误吗?还是我使用错了?

1 个答案:

答案 0 :(得分:2)

因此,我的解决方案始终使用stack之前的unstack,使索引或列成为简单索引,而不是使它们都成为多个索引。 (肯定是个错误,请参见上面的评论,github上有two link

df.stack().unstack(level=0)
Out[125]: 
first         andrew  bob  charlie
last                              
wood rnd           0    0        0
     non-rnd     123  234      345