在處理資料集時,通常需要計算值隨時間或不同類別之間的差異或變化。在 Pandas 中,您可以利用 groupby() 和 diff() 函數來有效地執行這些計算。
在給定的場景中,您有一個 DataFrame,其中包含各個網站上的資料及其在不同國家/地區的分數。您的目標是確定每個網站國家/地區組合的 1/3/5 天分數差異。
首先,按網站、國家/地區和地區對 DataFrame 進行排序日期列。排序可確保相似的資料點分組在一起,更容易計算差異。
<code class="python">df = df.sort_values(by=['site', 'country', 'date'])</code>
接下來,使用 groupby() 函數按站點和國家/地區將資料分組。
<code class="python">grouped = df.groupby(['site', 'country'])</code>
資料分組後,現在可以使用 diff() 函數計算分數差異。此函數計算組中連續行之間的差異。
<code class="python">df['diff'] = grouped['score'].diff().fillna(0)</code>
diff() 函數預設以 0 填入缺失值,確保資料集一致且完整。
產生的DataFrame 將包含原始資料以及計算出的分數差異:
date site country score diff 8 2018-01-01 fb es 100 0.0 9 2018-01-02 fb gb 100 0.0 5 2018-01-01 fb us 50 0.0 6 2018-01-02 fb us 55 5.0 7 2018-01-03 fb us 100 45.0 1 2018-01-01 google ch 50 0.0 4 2018-01-02 google ch 10 -40.0 0 2018-01-01 google us 100 0.0 2 2018-01-02 google us 70 -30.0 3 2018-01-03 google us 60 -10.0
此DataFrame 為每個站點/國家/地區組合提供所需的1/3/5 天分數差異。
以上是如何計算 Pandas 中多個網站和國家的分數差異?的詳細內容。更多資訊請關注PHP中文網其他相關文章!