任何人都可以帮助我从 pandas 文档中给出的示例中了解滚动功能和扩展功能之间的区别。
df = DataFrame({'B': [0, 1, 2, np.nan, 4]})
df
B
0 0.0
1 1.0
2 2.0
3 NaN
4 4.0
df.expanding(2).sum()
B
0 NaN # 0 + NaN
1 1.0 # 1 + 0
2 3.0 # 2 + 1
3 3.0 # ??
4 7.0 # ??
df.rolling(2).sum()
B
0 NaN # 0 + NaN
1 1.0 # 1 + 0
2 3.0 # 2 + 1
3 NaN # NaN + 2
4 NaN # 4 + NaN
我对每一行进行注释以表明我对计算的理解。 rolling
函数也是这样吗? 扩展
怎么样?第三行和第四行的3和7从哪里来?
最佳答案
expanding
中的 2 是 min_periods
而不是 window
df.expanding(min_periods=1).sum()
Out[117]:
B
0 0.0
1 1.0
2 3.0
3 3.0
4 7.0
如果你想要与rolling
相同的结果,window
将等于dataframe的长度
df.rolling(window=len(df),min_periods=1).sum()
Out[116]:
B
0 0.0
1 1.0
2 3.0
3 3.0
4 7.0
关于python - Pandas 数据帧 : difference between rolling and expanding function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53198344/