与documentation example类似,我想转动以下数据框:
foo extra bar baz
0 one x A 1
1 one x B 2
2 one x C 3
3 two y A 4
4 two y B 5
5 two y C 6
结果应为
extra A B C
one x 1 2 3
two y 4 5 6
这可以用比
更短的方式完成(我希望pivot命令能够执行此操作,但我的尝试失败了。)
以下是数据帧的代码:
df = pd.DataFrame({'foo': ['one','one','one','two','two','two'],
'extra': ['x','x','x','y','y','y'],
'bar': ['A', 'B', 'C', 'A', 'B', 'C'],
'baz': [1, 2, 3, 4, 5, 6]})
答案 0 :(得分:3)
您可以使用pivot_table
,pivot
只接受一列作为索引,列和值,而{ {1}}可以接受多列:
pivot_table
答案 1 :(得分:1)
使用set_index
和unstack
In [2087]: df.set_index(['foo', 'extra', 'bar'])['baz'].unstack().reset_index()
Out[2087]:
bar foo extra A B C
0 one x 1 2 3
1 two y 4 5 6