DataFrame 的反向滚动均值
Reverse Rolling mean for DataFrame
我正在尝试使用 DataFrame 创建夹具难度网格。我想要每支球队接下来 5 场比赛的平均值。
我目前正在使用 df.rolling(5, min_periods=1).mean().shift(-4)。这在一开始是有效的,但在最后会拉动 NAN。我明白为什么返回 NAN——没有向上移动的 DF。理想情况下,我希望 NAN 在剩余值中变得平均,相对于 38 的值只是它的当前值?
夹具困难
ARS AVL BHA BOU
3 4 3 2
2 2 2 2
5 2 2 4
4 2 5 3
3 2 2 2
接下来 5 个赛程的平均值
ARS AVL BHA BOU
3.4 2.4 2.8 2.6
3.2 2.4 2.8 2.6
3.6 2.4 3.2 2.6
3 2.4 3.6 2.6
2.6 2.4 3 2.4
NAN 在最后的记录中没有什么可以向上移动的。
3.2 3.6 2.8 3.6
nan nan nan nan
nan nan nan nan
nan nan nan nan
nan nan nan nan
我可以采用这种方法还是需要完全不同的方法来填充 NAN?
IIUC 你需要通过索引来反转值,使用滚动和反转:
df1 = df.iloc[::-1].rolling(5, min_periods=1).mean().iloc[::-1]
print (df1)
ARS AVL BHA BOU
0 3.4 2.4 2.80 2.60
1 3.5 2.0 2.75 2.75
2 4.0 2.0 3.00 3.00
3 3.5 2.0 3.50 2.50
4 3.0 2.0 2.00 2.00
我正在尝试使用 DataFrame 创建夹具难度网格。我想要每支球队接下来 5 场比赛的平均值。
我目前正在使用 df.rolling(5, min_periods=1).mean().shift(-4)。这在一开始是有效的,但在最后会拉动 NAN。我明白为什么返回 NAN——没有向上移动的 DF。理想情况下,我希望 NAN 在剩余值中变得平均,相对于 38 的值只是它的当前值?
夹具困难
ARS AVL BHA BOU
3 4 3 2
2 2 2 2
5 2 2 4
4 2 5 3
3 2 2 2
接下来 5 个赛程的平均值
ARS AVL BHA BOU
3.4 2.4 2.8 2.6
3.2 2.4 2.8 2.6
3.6 2.4 3.2 2.6
3 2.4 3.6 2.6
2.6 2.4 3 2.4
NAN 在最后的记录中没有什么可以向上移动的。
3.2 3.6 2.8 3.6
nan nan nan nan
nan nan nan nan
nan nan nan nan
nan nan nan nan
我可以采用这种方法还是需要完全不同的方法来填充 NAN?
IIUC 你需要通过索引来反转值,使用滚动和反转:
df1 = df.iloc[::-1].rolling(5, min_periods=1).mean().iloc[::-1]
print (df1)
ARS AVL BHA BOU
0 3.4 2.4 2.80 2.60
1 3.5 2.0 2.75 2.75
2 4.0 2.0 3.00 3.00
3 3.5 2.0 3.50 2.50
4 3.0 2.0 2.00 2.00