Pandas如何计算截至当前行累计最值并新增为DataFrame列
Pandas 逐行累计最大值实现方案
你需要的从数据集起始行到当前行的累计最高值统计,直接调用Pandas Series内置的cummax()方法即可实现,无需自定义循环或固定窗口滚动计算,执行效率很高。
实现步骤
- (可选前置操作)如果你的时间索引存在乱序,先按行索引排序保证时间顺序正确:
df = df.sort_index()
- 对
high列做累计最大值计算,结果赋值给新增的max列:
df["max"] = df["high"].cummax()
示例验证
使用你给出的测试数据执行上述代码后,得到的DataFrame结果如下:
open high low close max date 2022-06-27 07:58:00 31502.5 31504.0 31500.0 31503.0 31504.0 2022-06-27 07:58:10 31503.0 31503.5 31501.0 31502.0 31504.0 2022-06-27 07:58:20 31502.0 31502.0 31500.5 31502.0 31504.0
扩展说明
同系列累计计算内置方法可以直接套用,满足同类统计需求:
- 累计最小值:
cummin() - 累计求和:
cumsum() - 累计乘积:
cumprod()
内容的提问来源于stack exchange,提问作者Ivo
相关产品推荐
相关产品推荐

