pandasでgroupbyしたものをDataFrameに変換する

reset_index()を使う。

元データ

In [1]:

import pandas as pd
d = {'score':[10,20,25,40],
     'usr':['usr1','usr2','usr1','usr2']
     }
df = pd.DataFrame(d)
df
Out[1]:
score   usr
0   10  usr1
1   20  usr2
2   25  usr1
3   40  usr2

groupby()を使って集計する。帰って来るのはgoupbyオブジェクト。

In [2]:

df.groupby('usr')['score'].sum()
Out[2]:
usr
usr1    35
usr2    60
Name: score, dtype: int64

これをDataFrameとして扱いたければreset_index()を使えばよい。

In [3]:

df.groupby('usr')['score'].sum().reset_index()
Out[3]:
usr score
0   usr1    35
1   usr2    60