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

Python中基于指定列Submitted的值实现条件替换缺失值

解决方案

核心逻辑为:仅对Submitted列为空的行执行前向填充,Submitted为1的行完全保留原始值。

操作步骤

  1. 先对目标列做全局前向填充,得到所有空值被前值覆盖的临时表
  2. 用掩码把Submitted为1的行替换回原始值,保证这部分行的空值不被修改

完整代码示例

import pandas as pd
import numpy as np

# 示例构造数据,实际使用时替换为你自己的DataFrame即可
df = pd.DataFrame({
    'Year': [2020, np.nan, 2022, np.nan],
    'Country': ['美国', np.nan, '英国', np.nan],
    'Submitted': [1, np.nan, 1, np.nan],
    'Age12': [12.3, np.nan, 14.1, np.nan],
    'Age14': [14.2, np.nan, 16.5, np.nan]
})

# 如果不需要填充Submitted列,先指定要填充的列范围
fill_columns = [col for col in df.columns if col != 'Submitted']

# 生成全局前向填充的临时表
df_ffill = df.copy()
df_ffill[fill_columns] = df_ffill[fill_columns].ffill(axis=0)

# 仅保留Submitted为空行的填充结果,Submitted=1的行复用原始数据
df_final = df_ffill.mask(df['Submitted'] == 1, other=df)

代码说明

  • 提前筛选排除Submitted列是为了避免该列的空值被填充,符合业务逻辑
  • mask方法是向量化操作,相比逐行遍历判断效率高得多,适合处理百万级以上的数据集

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 11:18:02