python - 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 来自哪里?
解决方案
2 inexpanding
不是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
推荐阅读
- embedded - ESP-IDF || 核心转储
- python - 将 random.random 均匀转换为指数分布不会产生正确的结果
- mongoose - Mongoose `$project` 如何避免重复文件
- c# - 如何自定义输出serilog
- transactions - 我们可以为 Atomikos JTA 属性中的某些属性设置值,并为其他属性获取 jta.properties 中指定的默认值吗?
- json - 在 Swift 中将 JSON 对象解码为纯字符串
- node.js - Node.JS 应用程序 CPU 使用率越来越高
- mysql - 一个 VIEW 的左 JOIN 与一个包含多个列的巨大表花费了太多时间
- java - maven 可以在编译而不是运行时抛出错误吗?
- flask - 为什么没有显示响应结构?