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

如何将DataFrame列值替换为该列上方的最大值?

解决方案

直接使用Pandas的cummax()函数即可实现需求,该函数会逐行计算列的累计最大值,自动忽略NaN值,完美匹配你要的规则:

import pandas as pd
import numpy as np

# 构造原始DataFrame
df = pd.DataFrame({'a': [100, 103, 101, np.nan, 105, 107, 100]})

# 生成列b
df['b'] = df['a'].cummax().astype(int)

print(df)

运行后输出结果:

a    b
0  100.0  100
1  103.0  103
2  101.0  103
3    NaN  103
4  105.0  105
5  107.0  107
6  100.0  107

原理说明

  • cummax():逐行遍历列a,始终保留到当前行为止的最大值,遇到NaN时会跳过,沿用之前的最大值
  • astype(int):将结果转为整数类型,和你期望的输出格式一致(如果不需要可以省略)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 21:13:12