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

为DataFrame中缺失值生成possible min和possible max列的实现方案

解决方案

初始数据

indexvalue
01
1-1
2-1
3-1
46
5-1
6-1
7-1
810

需求说明:value列中-1代表缺失值,且该列数值呈递增趋势;需新增possible min和possible max列,为每个缺失值标记前后相邻的有效值作为范围,有效值对应的这两列留空。


实现代码

使用Pandas可通过填充方法快速完成需求:

import pandas as pd

# 构建初始DataFrame
df = pd.DataFrame({
    'index': [0,1,2,3,4,5,6,7,8],
    'value': [1,-1,-1,-1,6,-1,-1,-1,10]
})

# 将-1替换为NaN便于处理缺失值逻辑
df['value'] = df['value'].replace(-1, pd.NA)

# 生成possible min:向前填充最近的有效值
df['possible min'] = df['value'].ffill()
# 生成possible max:向后填充最近的有效值
df['possible max'] = df['value'].bfill()

# 将NaN换回原始的-1标记
df['value'] = df['value'].fillna(-1)

# 为有效值所在行清空possible min和max列
valid_mask = df['value'] != -1
df.loc[valid_mask, ['possible min', 'possible max']] = pd.NA

# 格式化空值显示为空白(可选)
df = df.fillna('')

print(df)

输出结果

indexvaluepossible minpossible max
01
1-116
2-116
3-116
46
5-1610
6-1610
7-1610
810

处理完成后,即可基于possible min和possible max列执行自定义缺失值填充逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 22:18:10