DataFrame で groupby を使用する場合、apply と Transform には次のような特徴があります。明確な特性:
入力:
出力:
列 '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'
減算に変換を使用するには、カスタム関数からスカラーを返し、それをすべての行に適用します。 group:
def subtract_two_scalar(x): return (x['a'] - x['b']).mean() df.groupby('A').transform(subtract_two_scalar)
これは、各グループの平均差を含む系列を返します。
以上がGroupby で列の減算と平均の計算に「apply」と「transform」を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。