参见英文答案 > How to pivot a dataframe 1个
在熊猫中旋转我有点麻烦.我正在处理的数据框(日期,位置,数据)如下所示:
dates location data
date1 A X
date2 A Y
date3 A Z
date1 B XX
date2 B YY
基本上,我试图在位置上进行调整以得到如下数据框:
dates A B C
date1 X XX etc...
date2 Y YY
date3 Z ZZ
不幸的是,当我转动时,索引(相当于原始日期列)不会改变,我得到:
dates A B C
date1 X NA etc...
date2 Y NA
date3 Z NA
date1 NA XX
date2 NA YY
有谁知道如何解决这个问题,以获得我正在寻找的数据帧格式?
我现在正在调用Pivot:
df.pivot(index="dates", columns="location")
因为我有一个我要转动的数据列#(不想将每个列列为参数).我相信默认情况下,pivot会转动数据框中的其余列.
谢谢.
解决方法:
如果您有多个数据列,则调用不带值列的pivot应该为您提供一个带有MultiIndex的透视框作为列:
In [3]: df
Out[3]:
columns data1 data2 index
0 a -0.602398 -0.982524 x
1 a 0.880927 0.818551 y
2 b -0.238849 0.766986 z
3 b -1.304346 0.955031 x
4 c -0.094820 0.746046 y
5 c -0.835785 1.123243 z
In [4]: df.pivot('index', 'columns')
Out[4]:
data1 data2
columns a b c a b c
index
x -0.602398 -1.304346 NaN -0.982524 0.955031 NaN
y 0.880927 NaN -0.094820 0.818551 NaN 0.746046
z NaN -0.238849 -0.835785 NaN 0.766986 1.123243