堆栈/uns的错误结果

2024-04-26 12:45:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧:

              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

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


Tags: 数据indfstackoutlevelfirstlast
1条回答
网友
1楼 · 发布于 2024-04-26 12:45:58

所以我的解决方案是,总是在stack之前使用unstack,使索引或列成为简单索引,而不是保持它们都是多索引(当然是bug,请看上面的评论,github中有twolink

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

相关问题 更多 >