パンダのgroupbyメソッドの使い方は何ですか?
Pandasのgroupby()は、データをグループ化するために使用されます。groupby()を使用すると、指定した列や複数の列に基づいてデータをグループ化し、各グループに対して統計量の計算、集約、変換などの操作を行うことができます。
groupby()の基本的な使い方は、
df.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, observed=False, dropna=True)
パラメータの説明:
- グループ化する列を指定することができます。単一の列名、複数の列名のリスト、シリーズ、辞書、関数などを使用できます。デフォルトはNoneで、DataFrame全体をグループ化します。
- axis:指定されたグループの軸、0は行ごとにグループ化、1は列ごとにグループ化を意味し、デフォルトは0です。
- レベル:DataFrameに多レベルのインデックスがある場合、どのレベルのインデックスでグループ化するかを指定できます。デフォルトはNoneです。
- as_index:指定したグループ化された結果をグループ列をインデックスとして使用するかどうかを指定します。デフォルトはTrueです。
- sort:グループ化された結果をグループ列でソートするかどうかを指定します。デフォルトはTrueです。
- group_keys:分組後の結果にグループキーを表示するかどうかを指定します。デフォルトはTrueです。
- squeeze:指定分组后是否对单个组的结果进行压缩,默认值为False。
- observed: 観察されたグループの全ての値を使用してグルーピングするかどうかを指定します。デフォルトはFalseです。
- dropna:欠損値を含むグループキーを排除するかどうかを指定します。デフォルトはTrueです。
groupby()メソッドはGroupByオブジェクトを返し、このオブジェクトに対してsumやmeanなどの集約関数を適用したり、データをフィルタリングしたり、データを変換したりすることができます。
GroupByオブジェクトのメソッドを使用することで、具体的な操作を実行できます。例えば、
- agg() 関数を使用して、各グループごとに集計操作を行います。
- apply():各グループにカスタム関数を適用します。
- transform():各グループに対して変換関数を適用します。
- filter()関数:条件に基づいてデータを選別します。
サンプルコード:
import pandas as pd
# 创建一个DataFrame
data = {'Name': ['Tom', 'Nick', 'John', 'Tom', 'Nick', 'John'],
'Subject': ['Math', 'English', 'Math', 'English', 'Math', 'English'],
'Score': [85, 90, 92, 78, 82, 88]}
df = pd.DataFrame(data)
# 按照Name列进行分组,并计算每个分组的平均分数
result = df.groupby('Name')['Score'].mean()
print(result)
結果を出力します。
Name
John 90.0
Nick 86.0
Tom 81.5
Name: Score, dtype: float64
この例では、まずName列でグループ化し、それから各グループの平均スコアを計算します。結果は、インデックスがグループの一意な値(Name列の値)、値が各グループの平均スコアであるSeriesとなります。