ホームページ > バックエンド開発 > Python チュートリアル > すべての Groupby 操作で変換が機能しないのはなぜですか?

すべての Groupby 操作で変換が機能しないのはなぜですか?

Barbara Streisand
リリース: 2024-11-11 14:39:03
オリジナル
622 人が閲覧しました

Why Doesn't Transform Work for All Groupby Operations?

すべての groupby 操作がtransformで機能しないのはなぜですか

次のコードは機能します:

df.groupby('A').apply(lambda x: (x['C'] - x['D']).mean())
ログイン後にコピー

しかし、次のコードは機能しません:

df.groupby('A').transform(lambda x: (x['C'] - x['D']).mean())
ログイン後にコピー
ログイン後にコピー

この理由は、適用と変換の動作が異なるためです。

apply

  • apply() メソッドは、各グループに関数を適用します。
  • 関数は、グループである単一の引数を取ることも、グループ内の列である複数の引数を取ることもできます。
  • 関数は単一の引数を返すことができます。
  • 関数が単一の値を返す場合、結果はシリーズになります。
  • 関数がシリーズまたはデータフレームを返す場合、結果は DataFrame になります。

transform

  • transform() メソッドは、グループ内の各行に関数を適用します。
  • 関数は行である単一の引数を取ることも、行内の列である複数の引数を取ることもできます。
  • 関数は単一の値を返す必要があります。
  • 関数の結果は Series になります。

コード例では、apply() メソッドを使用して、各グループの C 列と D 列の差の平均を計算します。

  • transform() メソッドは単一の値ではなく系列を返すため、この値の計算には使用できません。

C 間の差の平均を計算するにはtransform() メソッドを使用して各グループの D 列を使用するには、単一の値を返すように関数を変更する必要があります。

  • これは、 function.
  • 次のコードは、これを行う方法を示しています。
df.groupby('A').transform(lambda x: (x['C'] - x['D']).mean())
ログイン後にコピー
ログイン後にコピー

以上がすべての Groupby 操作で変換が機能しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート