7. データの集計とグループ化¶
pandas はデータを効率よく集計し、グループ化する強力な機能を持っています。このセクションでは、データの集計とグループ化の基本的な手法について学びます。以下のサブトピックでデータの集計とグループ化を詳しく見ていきましょう。
7.1 グループ化の基本¶
pandas のgroupby
機能を使うことで、データを特定の基準でグループ化し、それぞれのグループに対してさまざまな計算を行うことができます。ここでは基本的な使い方を紹介します。
7.1.1 グループ化して集計する¶
import pandas as pd
# サンプルデータを作成
data = {'Fruit': ['Apple', 'Banana', 'Apple', 'Banana', 'Apple'],
'Category': ['A', 'A', 'B', 'B', 'C'],
'Price': [150, 120, 180, 110, 170]}
df = pd.DataFrame(data)
# 'Fruit'でグループ化し、Priceの合計を計算する
grouped = df.groupby('Fruit')['Price'].sum()
print(grouped)
説明:¶
この例では、果物ごとに価格の合計を算出しています。groupby('Fruit')
で"Fruit"列を基準にグループ化し、sum()
関数で各グループの合計を取得しています。
7.2 複数列でのグループ化¶
pandas では、複数の列を基にグループ化することも可能です。次に、その方法について見ていきましょう。
7.2.1 複数列での集計¶
# 'Fruit'と'Category'の組み合わせでグループ化し、価格の平均を計算する
grouped_multi = df.groupby(['Fruit', 'Category'])['Price'].mean()
print(grouped_multi)
説明:¶
この例では、"Fruit"と"Category"の 2 つの列でグループ化し、それぞれの組み合わせの価格の平均を計算しています。
7.3 グループごとの操作と変換¶
グループ化したデータに対して、集計以外の操作を行うこともできます。例えば、各グループ内のデータを操作することが可能です。
7.3.1 各グループでの変換¶
# 'Fruit'ごとに価格の標準偏差を計算し、新しい列として追加
df['Price_std'] = df.groupby('Fruit')['Price'].transform('std')
print(df)
説明:¶
ここでは、"Fruit"ごとに価格の標準偏差を計算し、その結果を新しい列としてデータフレームに追加しています。
7.4 グループ化オブジェクトの把握¶
groupby
で出来上がったオブジェクトを理解しておくと、さらなるデータ操作がしやすくなります。
7.4.1 グループ化オブジェクトの属性とメソッド¶
# グループ化オブジェクトを観察
grouped = df.groupby('Fruit')
for name, group in grouped:
print('Group name:', name)
print(group)
説明:¶
このコードは、"Fruit"でグループ化したデータを繰り返し処理し、それぞれのグループ名とグループ内容を出力しています。この方法を使うことで、各グループのデータをより詳しく調査できます。
以上が、データの集計とグループ化の基本的な使い方です。pandas を用いることで、大規模データセットから素早く有用な情報を引き出すことができます。データ分析において非常に重要なスキルですので、ぜひ慣れてみてください。