ホームページ >バックエンド開発 >Python チュートリアル >Pandas GroupBy DataFrame の複数の列に複数の関数を適用するにはどうすればよいですか?
複数のグループ化された列に複数の関数を適用する
グループ化されたデータを操作する場合、Pandas の groupby メソッドを使用すると、次を使用して複数の関数を同時に適用できます。辞書。ただし、このアプローチは Series の groupby オブジェクトに対してのみ機能します。
groupby DataFrame があり、関数を複数の列に適用したい場合は、ディクショナリ内のキーとして列名を指定するという課題に直面します。さらに、特定の関数は他の列に依存する可能性があるため、agg メソッドの使用が複雑になります。
利用可能なオプションは次のとおりです:
apply メソッドの使用
apply メソッドは、暗黙的に DataFrame を適用された関数に渡します。これにより、複数の列を同時に操作できるようになります。辞書を使用して列名を集計関数にマッピングします:
df.groupby('group').apply({'a': ['sum', 'max'], 'b': 'mean', 'c': 'sum', 'd': lambda x: x.max() - x.min()})
または、カスタム関数を使用してすべての集計のシリーズを返すこともできます:
def f(x): return pd.Series({'a_sum': x['a'].sum(), 'a_max': x['a'].max(), 'b_mean': x['b'].mean(), 'c_d_prodsum': (x['c'] * x['d']).sum()}) df.groupby('group').apply(f)
制限事項および代替手段
結論として、Pandas には複数の関数を適用する組み込みの方法がありません。 groupby DataFrame の特定の列に適用する場合、apply メソッドは、ほとんどのシナリオに対して柔軟でカスタマイズ可能なソリューションを提供します。複数の列と依存関係を含む複雑な集計の場合は、別のアプローチを検討するか、グループ化されたオブジェクトを手動で反復処理する必要がある場合があります。
以上がPandas GroupBy DataFrame の複数の列に複数の関数を適用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。