単一列での groupby によるグループ化
このステップでは、DataFrame をグループに分割するための groupby() メソッドの基本的な使い方を学びます。groupby() メソッド自体は何も計算しませんが、DataFrameGroupBy オブジェクトを返します。このオブジェクトには、各グループに計算を適用するために必要なすべての情報が含まれています。
まず、サンプル DataFrame を Category 列でグループ化します。これにより、「Electronics」、「Clothing」、「Books」のそれぞれに異なるグループが作成されます。
左側のエディタで main.py ファイルを開いてください。DataFrame を作成するための初期コードはすでに記述されています。以下のコードを main.py ファイルの末尾に追加してください。
## 'Category' 列でグループ化
grouped_by_category = df.groupby('Category')
## 結果は DataFrameGroupBy オブジェクトです
print("Type of the grouped object:")
print(type(grouped_by_category))
## 内容を確認するには、グループを反復処理できます
print("\nIterating over groups to see their content:")
for name, group in grouped_by_category:
print(f"\nGroup: {name}")
print(group)
次に、ターミナルからスクリプトを実行して出力を確認します。
python3 main.py
元の DataFrame の後に、groupby オブジェクトの型、そして各グループの内容が表示されます。これは、DataFrame が 'Category' 列のユニークな値に基づいて正常に分割されたことを示しています。
Original DataFrame:
Category Region Sales Units
0 Electronics North 1200 10
1 Clothing South 800 25
2 Electronics North 1500 8
3 Books West 300 15
4 Clothing East 900 20
5 Books West 450 18
==============================
Type of the grouped object:
<class 'pandas.core.groupby.generic.DataFrameGroupBy'>
Iterating over groups to see their content:
Group: Books
Category Region Sales Units
3 Books West 300 15
5 Books West 450 18
Group: Clothing
Category Region Sales Units
1 Clothing South 800 25
4 Clothing East 900 20
Group: Electronics
Category Region Sales Units
0 Electronics North 1200 10
2 Electronics North 1500 8