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

如何在Pandas中获取每行指定范围内的最大值

在Pandas中获取每行指定范围内的列最大值

要实现每行取指定列(比如示例中的A列)最近N个值的最大值,核心是用Pandas的rolling滚动窗口函数,以示例中取最近4个值的需求为例:

步骤1:构造示例数据

import pandas as pd

# 生成示例DataFrame
data = {'A': [10, 12, 14, 8, 9, 10, 15, 15, 16, 10, 11, 12, 13, 14, 20, 19]}
df = pd.DataFrame(data)

步骤2:计算指定范围的最大值

使用rolling(window=4)创建大小为4的滚动窗口,再调用.max()计算窗口内的最大值:

# 为每行计算A列最近4个值的最大值
df['Max_Range'] = df['A'].rolling(window=4).max()

结果说明

  • 前3行因为窗口内元素不足4个,结果为NaN,和示例完全一致
  • 从第4行(索引3)开始,每行的Max_Range值为当前行及之前3行(共4个值)的最大值,比如索引3对应的是A[0:4]的最大值14,索引4对应的是A[1:5]的最大值14,完全匹配示例输出。

如果需要调整窗口范围(比如不包含当前行、或取未来N个值),可以修改rolling的参数,比如设置closed='left'(窗口不包含当前行)、window=4, center=True(窗口以当前行为中心)等,根据实际需求调整即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 04:36:13