You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现DataFrame中最后5行的正值滚动计数?

在Pandas DataFrame中实现滚动统计最近5行的正值数量

构造示例数据

先创建和你示例一致的DataFrame:

import pandas as pd

data = {'Values': [1, 4, -9, 6, 1, -1, -3, 4]}
df = pd.DataFrame(data)

实现滚动计数

通过Pandas的rolling方法可以快速实现需求,核心思路是将正值转为布尔值后,在滚动窗口内求和:

# 先标记正值为True,再滚动窗口求和,最后转成整数
df['Positive last 5'] = (df['Values'] > 0).rolling(window=5, min_periods=1).sum().astype(int)

输出结果

运行后得到的DataFrame和你的示例完全一致:

Values  Positive last 5
0       1                 1
1       4                 2
2      -9                 2
3       6                 3
4       1                 4
5      -1                 3
6      -3                 2
7       4                 3

参数说明

  • window=5:设置滚动窗口大小为5,统计包含当前行在内的最近5行数据
  • min_periods=1:允许窗口内数据不足5行时(比如前4行)仍计算结果,避免出现NaN
  • astype(int):将求和得到的浮点数结果转为整数,匹配示例中的格式

内容的提问来源于stack exchange,提问作者boioboi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 03:15:47