pandasでグループ化の方法
groupby 関数は DataFrame のデータをグループ分けします。これは、1つまたは複数の列の値に基づいてデータを分割し、各グループに対して集計操作を実行します。
groupby関数の一般的な利用方法は以下の通りです。
df.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, observed=False, **kwargs)
パラメータの説明:
- 指定のグループの列名か列名のリスト。 単一の列名の文字列か、複数の列名からなるリストとすることができる。
- 行(デフォルト)または列でグループ化する軸を指定します。
- データフレームに複数レベルのインデックスがある場合は、グルーピングするインデックスレベルを指定できます。
- グループ化の列をインデックスとして使用するかどうか。デフォルトは True。
- グループ化後の結果はグループキーでソートされるか(デフォルトはTrue)。
- グループキーを最終的に結果に含めるかどうか、既定では True になります。
- グループ化後の結果が1列のみの場合に、結果をSeriesとして返すかどうか。デフォルトはFalseです。
- すべてのグループキーを考慮するかどうか。デフォルトは False
groupby関数は、グループ分けされたオブジェクトを返却し、それに対して、合計値や平均値を求めるなどの集計操作を実行できます。
ここでは、よく使われるgroupby操作のパターンを示します。
# 按某一列进行分组,并计算每组的平均值
df.groupby('column_name').mean()
# 按多个列进行分组,并计算每组的和
df.groupby(['column_name1', 'column_name2']).sum()
# 对分组后的结果进行聚合操作
df.groupby('column_name').agg({'column_name1': 'sum', 'column_name2': 'mean'})
# 对分组后的结果进行迭代
for group_name, group_data in df.groupby('column_name'):
# 操作每个分组的数据
# 对分组后的结果应用自定义的函数
df.groupby('column_name').apply(custom_function)
これはgroupby関数の基本的な使用方法です。より詳細な使用方法については、Pandas公式ドキュメントを参照してください。