python - Pandas 数据帧 : difference between rolling and expanding function

标签 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 函数也是这样吗? 扩展怎么样?第三行和第四行的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/

相关文章:

python - 任何人都可以提供一种更 pythonic 的方式来生成莫里斯序列吗?

python - 在python函数中获取参数名称列表

python - 根据 Pandas 中的参数将列的值更改为 1 或 0

python - Pandas 在两个日期之间生成每周的第一个和最后一个工作日

python - 从提取的分组数据生成新的数据框

python - 更快的日期格式化解决方案

python - 同时使用 input() 和 print() (就像在聊天中一样)

python - lambda python dynamodb写入获取超时错误

python - 从 GroupBy 对象中的组中获取除前 k 行以外的所有行

python - Django中 'related_name'和 'related_query_name'属性之间的区别?