在不进行汇总的情况下重塑数据帧:基于第二个索引|从长到宽的行到列



我使用python3的数据帧。

A  B    C  D  E
0  foo  0  1.2  1  2
1  foo  1  1.3  2  4
2  foo  2  2.1  2  5
3  foo  3  3.1  3  5
4  nan  0    0  0  0
5  bar  0  4.1  4  6
6  bar  1  1.2  5  8
7  bar  2  1.4  6  9
8  bar  3  5.0  7  9

我想把它重塑为

0             1               2               3
A    C  D  E       C  D  E         C  D  E         C  D  E
0  foo  1.2  1  2     1.3  2  4       2.1  2  5       3.1  3  5
1  bar  4.1  4  6     1.2  5  8       1.4  6  9       5.0  7  9

到目前为止,我已经尝试了这篇文章中的例子,但它创造了价值观的集合,而我只是在重塑方面并不成功。如有任何帮助,我们将不胜感激。

我们可以在set_index之后尝试unstack,然后用sort_index+swaplevel修剪索引

out = df.dropna().set_index(['A','B']).unstack().sort_index(level=1,axis=1).swaplevel(0,1,axis=1).reset_index()
Out[62]: 
B    A    0          1          2          3      
C  D  E    C  D  E    C  D  E    C  D  E
0  bar  4.1  4  6  1.2  5  8  1.4  6  9  5.0  7  9
1  foo  1.2  1  2  1.3  2  4  2.1  2  5  3.1  3  5

相关内容

最新更新