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