1
我對NBA比賽的統計數據的大熊貓數據幀。下面是客場強隊的數據樣本:Python的大熊貓滾動平均值,同時保留索引和列
away_team away_efg away_drb away_score
date
2000-10-31 19:00:00 Los Angeles Clippers 0.522 74.4 94
2000-10-31 19:00:00 Milwaukee Bucks 0.434 63.0 93
2000-10-31 19:30:00 Minnesota Timberwolves 0.523 73.8 106
2000-10-31 19:30:00 Charlotte Hornets 0.605 77.1 106
2000-10-31 19:30:00 Seattle SuperSonics 0.429 73.1 88
有對主隊不是away_score
列之外更多的數字列,並且也類似於列。
我想,對於每一行,與前三個觀測的平均值,由團隊劃分更換數字列(比其他得分)。我可以幾乎得到我想要的東西通過執行以下操作:
home_df.groupby("team").apply(lambda x: x.rolling(window=3).mean())
這將返回,例如,
>>> home_avg[home_avg["team"]=="Utah Jazz"].head()
3par ast blk drb efg ftr orb
0 NaN NaN NaN NaN NaN NaN NaN
50 NaN NaN NaN NaN NaN NaN NaN
81 0.146667 71.600000 9.4 74.666667 0.512000 0.347667 25.833333
與
>>> home_df[home_df["team"]=="Utah Jazz"].head()
3par ast blk drb efg ftr orb stl team tov trb
0 0.118 76.7 7.1 64.7 0.535 0.365 25.6 11.5 Utah Jazz 10.8 42.9
50 0.100 63.9 9.1 80.5 0.536 0.414 27.6 2.2 Utah Jazz 20.2 58.6
81 0.222 74.2 12.0 78.8 0.465 0.264 24.3 7.3 Utah Jazz 13.9 50.0
122 0.119 81.8 11.3 75.0 0.515 0.642 25.0 12.2 Utah Jazz 21.8 52.5
135 0.129 76.7 17.8 75.9 0.650 0.400 37.9 5.7 Utah Jazz 18.8 62.7
有鑑於此,沿證明它是包括在平均計算的當前行。我想避免這種情況。更具體地,對於81行所希望的輸出將是所有NaN
S(因爲還沒有三場還),以及用於122行中的3par
列中的項將是0.146667(平均的值的該列中爲第0,50和81行)。
所以,我的問題是,我怎麼能排除當前行中的滾動平均值計算?
真棒,謝謝! – user4601931