提前为超级新手问题道歉。
我正在学习使用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'])开头的东西,但我不知道如何连接回来的行,以及是否有任何方法可以创建新的列名
谢谢!
答案 0 :(得分: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