我有这个 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
第一个显然是错误的..这是一个错误吗?还是我只是用错了?
最佳答案
所以我的解决方案是,总是在 unstack
之前使用 stack
,使索引或列变成简单索引,而不是保持它们都是多重索引。 (肯定是bug,看上面的评论,有two link来自github)
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/