与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]})
解决方法:
使用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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。