我有这个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


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

最佳答案

因此,我的解决方案始终在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

关于python - Pandas堆栈/堆栈错误的结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51849095/

10-11 06:21