首頁 >後端開發 >Python教學 >如何使用「apply」和「transform」透過 Groupby 進行列減法和平均值計算?

如何使用「apply」和「transform」透過 Groupby 進行列減法和平均值計算?

DDD
DDD原創
2024-11-21 09:00:11628瀏覽

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

使用Apply和Transform減去兩列併計算平均值

Apply和Transform之間的差異

在DataFrame上使用groupby時,apply和transform有清楚的特性:

輸入:

  • apply將每個群組的整個 DataFrame 作為輸入。
  • transform 單獨處理每組的每一列作為Series.

輸出:

  • apply 可以回標量、Series 、DataFrame(或其他資料型別)。
  • 變換需要與群組長度相同的序列。

自訂函數對於減法

考慮使用自訂函數subtract_two從'b'中減去列'a':

def subtract_two(x):
    return x['a'] - x['b']

應用與轉換用法

1。應用:

使用 apply,我們可以計算每組的 'a' 和 'b' 的差異,回傳一個系列:

df.groupby('A').apply(subtract_two)

2。變換:

嘗試使用變換將導致 KeyError,因為變換需要與組長度相同的序列:

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)

這將傳回一個系列,其中包含每個群組的平均差。

以上是如何使用「apply」和「transform」透過 Groupby 進行列減法和平均值計算?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn