Pandas groupby 在多個欄位上進行差異計算
在程式設計中,操作資料至關重要,Pandas 是執行這些任務的強大庫高效。一個常見的問題是如何按多個欄位對資料進行分組併計算差異。讓我們探索如何實現這一目標。
問題:
考慮具有以下結構的DataFrame:
date site country score 0 2018-01-01 google us 100 1 2018-01-01 google ch 50 2 2018-01-02 google us 70 3 2018-01-03 google us 60 ...
目標是找到每個「地點/國家」組合的分數存在1/3/5 天的差異。
解:
為了解決這個問題,我們可以利用Pandas 的groupby和diff 函數:
df = df.sort_values(by=['site', 'country', 'date'])排序可確保我們的資料組織正確的分組和差異計算。
df['diff'] = df.groupby(['site', 'country'])['score'].diff().fillna(0)此行使用 groupby 以「site」和「country」欄位對 DataFrame 進行分組。然後,它使用 diff 計算每組內每個連續分數之間的差異。結果儲存在名為“diff”的新欄位中。使用 fillna(0) 將任何缺失值替換為 0。
輸出:
產生的DataFrame 將包含原始欄位以及「diff」欄位:date site country score diff 0 2018-01-01 fb es 100 0.0 1 2018-01-02 fb gb 100 0.0 ...
附加說明:
以上是如何計算 Pandas DataFrame 中多個欄位的分數差異?的詳細內容。更多資訊請關注PHP中文網其他相關文章!