Pandas DataFrame:滚动和扩展功能之间的区别

时间:2018-11-07 21:47:24

标签: python pandas

有人可以帮助我从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函数是否正确? expanding呢?第三和第四行中的3和7来自哪里?

1 个答案:

答案 0 :(得分:3)

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

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