ホームページ > バックエンド開発 > Python チュートリアル > Groupby で列の減算と平均の計算に「apply」と「transform」を使用するにはどうすればよいですか?

Groupby で列の減算と平均の計算に「apply」と「transform」を使用するにはどうすればよいですか?

DDD
リリース: 2024-11-21 09:00:11
オリジナル
612 人が閲覧しました

How Can You Use `apply` and `transform` for Column Subtraction and Mean Calculation with Groupby?

Apply と Transform を使用した 2 つの列の減算と平均の計算

Apply と Transform の違い

DataFrame で groupby を使用する場合、apply と Transform には次のような特徴があります。明確な特性:

入力:

  • apply は、各グループの DataFrame 全体を入力として受け取ります。
  • transform は、各グループの各列を個別に処理します。としてSeries.

出力:

  • apply は、スカラー、Series、DataFrame (または他のデータ型) を返すことができます。
  • 変換には、グループと同じ長さのシーケンスが必要です。

カスタム関数減算の場合

列 'a' を 'b' から減算するためのカスタム関数subtract_two を考えます。

def subtract_two(x):
    return x['a'] - x['b']
ログイン後にコピー

適用と変換の使用法

1。 apply:

apply を使用すると、各グループの 'a' と 'b' の差を計算でき、Series:

df.groupby('A').apply(subtract_two)
ログイン後にコピー

2 を返します。 Transform:

transform を使用しようとすると、KeyError が発生します。transform はグループと同じ長さのシーケンスを期待するためです:

df.groupby('A').transform(subtract_two)
# KeyError: 'a'
ログイン後にコピー

Transform からスカラーを返す

減算に変換を使用するには、カスタム関数からスカラーを返し、それをすべての行に適用します。 group:

def subtract_two_scalar(x):
    return (x['a'] - x['b']).mean()

df.groupby('A').transform(subtract_two_scalar)
ログイン後にコピー

これは、各グループの平均差を含む系列を返します。

以上がGroupby で列の減算と平均の計算に「apply」と「transform」を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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