首页 > 解决方案 > Pandas DataFrame:滚动和扩展功能的区别

问题描述

谁能帮助我从熊猫文档中给出的示例中了解滚动功能和扩展功能之间的区别。

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吗?怎么样expanding?第 3 行和第 4 行的 3 和 7 来自哪里?

标签: pythonpandas

解决方案


2 inexpanding不是min_periodswindow

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将等于数据帧的长度

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

推荐阅读