ホームページ >バックエンド開発 >Python チュートリアル >Pandas GroupBy DataFrame の複数の列に複数の関数を適用するにはどうすればよいですか?

Pandas GroupBy DataFrame の複数の列に複数の関数を適用するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-20 03:49:09640ブラウズ

How Can I Apply Multiple Functions to Multiple Columns in a 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)

制限事項および代替手段

  • apply メソッド関数を各グループに繰り返し適用しますが、大規模なデータセットでは時間がかかる可能性があります。
  • 組み込みの Pandas 関数ではないカスタム集計関数が必要な場合は、カスタム ラムダで agg メソッドを使用するか、適用する必要がある場合があります。グループ化された DataFrame に対する一連の操作。

結論として、Pandas には複数の関数を適用する組み込みの方法がありません。 groupby DataFrame の特定の列に適用する場合、apply メソッドは、ほとんどのシナリオに対して柔軟でカスタマイズ可能なソリューションを提供します。複数の列と依存関係を含む複雑な集計の場合は、別のアプローチを検討するか、グループ化されたオブジェクトを手動で反復処理する必要がある場合があります。

以上がPandas GroupBy DataFrame の複数の列に複数の関数を適用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。