You need to enable JavaScript to run this app. 如何在Pandas中获取记录前N行(含当前行)最大值并完成运算
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas中获取记录前N行(含当前行)最大值并完成运算

实现方案

直接使用Pandas内置的rolling滑动窗口方法即可实现,代码简洁高效,符合Pythonic风格:

第一步:构造测试数据

import pandas as pd

df = pd.DataFrame({
    'date': ['2021-01-01', '2021-01-02', '2021-01-03', '2021-01-04', '2021-01-05',
             '2021-01-06', '2021-01-07', '2021-01-08', '2021-01-09', '2021-01-10'],
    'value': [10, 5, 7, 1, 12, 8, 9, 8, 4, 3]
})

第二步:核心计算逻辑

可自定义调整窗口大小N和运算规则:

N = 3
# 计算滑动窗口最大值,min_periods=1表示前N-1行不足窗口大小时自动取已有所有行计算
df['window_max'] = df['value'].rolling(window=N, min_periods=1).max()
# 按规则计算数值结果
df['Operation'] = df['value'] / df['window_max']

# 若需要输出示例中的分数字符串格式,可加这行
df['Operation_str'] = df.apply(lambda x: f"{x['value']}/{int(x['window_max'])}", axis=1)

参数说明

  • window=N:指定滑动窗口大小为N,刚好覆盖当前行+前N-1行,完全匹配需求
  • min_periods=1:避免前N-1行因窗口数据不足返回空值,会自动取当前所有已有行计算最大值

运行后得到的结果和你给出的预期输出完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 07:48:03