参见英文答案 > How to pivot a dataframe 1个
为超级新手问题提前道歉.
我正在学习使用pandas,并且有这个简单的操作,我无法弄清楚如何执行:
我有以下数据框:
print df
Out[19]:
USERNAME REQUEST_TYPE STATUS LATENCY
0 foo 1 SUCCESS 7
1 foo 2 SUCCESS 17
2 bar 1 SUCCESS 10
3 bar 2 FAILURE 12
我希望每个USERNAME都有一行,这是串联
每个REQUEST_TYPE的STATUS和LATENCY列.输出应如下所示:
USERNAME STATUS_1 LATENCY_1 STATUS_2 LATENCY_2
0 foo SUCCESS 7 SUCCESS 17
1 bar SUCCESS 10 FAILURE 12
我想到了以pandas.groupby(df,[‘USERNAME’,’REQUEST_TYPE’])开头的东西,但我不知道如何连接回来的行,以及是否有任何方法可以创建新的列名.
谢谢!
解决方法:
b = df.pivot('USERNAME', 'REQUEST_TYPE')
b.columns = ['{0}_{1}'.format(*col) for col in b.columns]
b现在是:
LATENCY_1 LATENCY_2 STATUS_1 STATUS_2
USERNAME
bar 10 12 SUCCESS FAILURE
foo 7 17 SUCCESS SUCCESS
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。