微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – Pandas:转动数据帧

参见英文答案 > 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] 举报,一经查实,本站将立刻删除。

相关推荐