在Pandas中,apply和transform都可以用來對分組資料執行操作。但是,這兩種方法之間存在一些關鍵差異。
輸入類型
- apply 將每個群組的整個 DataFrame 作為輸入傳遞給自訂函數。
- transform 將每個群組的 DataFrame 的每一列單獨傳遞為自訂的輸入函數。
輸出型別
- apply 可以傳回標量、Series 或 DataFrame。
- transform 必須返回序列(例如,系列、數組或列表),其長度與group.
Transformation
- apply 可用於在DataFrame 上執行轉換,例如聚合值、過濾行或修改資料。
- transform 主要用於在群組內執行按行操作,例如縮放值或新增值
範例
考慮以下DataFrame :
使用apply 從每組中的D 欄中減去 C列:
要從每組內的D 列減去C 列,請使用轉換:
請注意,傳遞給transform的lambda函數傳回C和D之間差異的平均值,從而產生與原始DataFrame具有相同形狀的轉換列。
何時使用apply 與transform:
- 當需要存取群組內的多個欄位或執行時使用apply導致不同形狀輸出的操作(例如,聚合值或過濾行)。
- 當您需要在群組內執行按行操作並希望使用以下值建立新列或變數時,請使用轉換:與輸入資料形狀相同。
以上是何時使用 Pandas apply 與transform 進行分組資料運算?的詳細內容。更多資訊請關注PHP中文網其他相關文章!