【Pandas DataFrame】groupby()メソッドで、データフレームを特定の列の値でグループ化することができます。

python

pandasのDataFrameのgroupby()メソッドは、データフレームを特定の列の値でグループ化する機能です。これにより、データフレームを特定の列の値で分割し、それぞれのグループに対して関数を適用することができます。

例えば、以下のデータフレームを用いて説明します。

import pandas as pd
df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar',
'foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'three',
'two', 'two', 'one', 'three'],
'C': [1, 5, 5, 2, 5, 3, 6, 4],
'D': [2.0, 5., 8., 1., 2., 9., 4., 3.]})
print(df)
     A      B  C    D
0 foo one 1 2.0
1 bar one 5 5.0
2 foo two 5 8.0
3 bar three 2 1.0
4 foo two 5 2.0
5 bar two 3 9.0
6 foo one 6 4.0
7 foo three 4 3.0

このデータフレームを、列Aの値でグループ化するには、以下のようにします。

grouped = df.groupby('A')

これにより、列Aの値でグループ化されたデータフレームが得られます。

for name, group in grouped:
print(name)
print(group)
foo
A B C D
0 foo one 1 2.0
2 foo two 5 8.0
4 foo two 5 2.0
6 foo one 6 4.0
7 foo three 4 3.0
bar
A B C D
1 bar one 5 5.0
3 bar three 2 1.0
5 bar two 3 9.0

また、グループ化したデータフレームに関数を適用することもできます。例えば、列Cの合計を求めるには、以下のようにします。

grouped.sum()
       C     D
A
bar 10 10.0
foo 21 19.0
タイトルとURLをコピーしました