如何实现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行)仍计算结果,避免出现NaNastype(int):将求和得到的浮点数结果转为整数,匹配示例中的格式
内容的提问来源于stack exchange,提问作者boioboi
相关产品推荐
相关产品推荐

