這是這個問題的一個變體,只有一個新列Track:
| 日期 | 騎師編號 | 位置 | 追蹤 |
|---|---|---|---|
| 23-12-2018 | 4340 | 1 | 沙田 |
| 25-11-2018 | 4340 | 5 | 沙田 |
| 19-12-2018 | 4340 | 10 | 歡樂谷 |
| 01-01-2019 | 4340 | 3 | 歡樂谷 |
| 18-10-2017 | 8443 | 1 | 沙田 |
| 18-02-2018 | 8443 | 6 | 沙田 |
| 12-05-2018 | 8443 | 7 | 歡樂谷 |
我正在尋找的是一種計算滾動平均最終位置的方法,在過去 1000 天內,特別是在沙田。最終結果:
| 日期 | 騎師編號 | 位置 | 追蹤 | 平均位置 |
|---|---|---|---|---|
| 23-12-2018 | 4340 | 1 | 沙田 | 1 (1/1) |
| 25-11-2018 | 4340 | 5 | 沙田 | 3 (1 5)/2 |
| 19-12-2018 | 4340 | 10 | 歡樂谷 | |
| 01-01-2019 | 4340 | 3 | 歡樂谷 | |
| 18-10-2017 | 8443 | 1 | 沙田 | 1 (1/1) |
| 18-02-2018 | 8443 | 6 | 沙田 | 3.5 (1 6)/2 |
| 12-05-2018 | 8443 | 7 | 歡樂谷 |
uj5u.com熱心網友回復:
將Track列添加到groupby:
df['new'] = (df.set_index('Date')
.groupby(['Jockey ID','Track', pd.Grouper(freq='1000D')])['Position']
.transform(lambda x: x.expanding().mean())
.to_numpy())
print (df)
如果需要過濾器是可能的,但輸出不同,因為不匹配的是NaNs:
mask = df['Track'].eq('Sha Tin')
df.loc[mask, 'new'] = (df[mask].set_index('Date')
.groupby(['Jockey ID','Track', pd.Grouper(freq='1000D')])['Position']
.transform(lambda x: x.expanding().mean())
.to_numpy())
print (df)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/357468.html
上一篇:使用scrapy將值存盤到鍵中
