3

超初心者の質問を事前にお詫び申し上げます。

私はパンダの使い方を学んでいますが、実行方法がわからないこの簡単な操作があります:

次のデータフレームがあります。

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 ごとに 1 つの行が必要です。出力は次のようになります。

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']) で始まる何かを考えましたが、行を連結して戻す方法と、新しい列名を作成する方法があるかどうかはわかりません。

ありがとう!

4

1 に答える 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
于 2012-07-25T13:43:57.490 に答える