Pandas:数据透视表

3

非常抱歉,这是一个超级新手的问题。

我正在学习如何使用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

我希望每个用户名都对应一行,该行的内容为 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'])来开始处理,但我不确定如何将行连接起来,也不确定是否有任何方法可以创建新的列名。

谢谢!

1个回答

5
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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接