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

如何按条件使用列中已有值填充DataFrame指定列的NA行数据

Python Pandas 实现方案

你需要的是前向填充逻辑:用列中前面最近的非空有效值,向后填充后续的NA值,且开头未出现有效值的NA会保留,完全匹配你的需求。

实现代码

import pandas as pd
import numpy as np

# 1. 构造示例数据,实际使用时直接读取自己的数据源即可
df = pd.DataFrame({
    'VehicleID': range(1,10),
    '1': range(1,10),
    'English': ['Release', pd.NA, pd.NA, pd.NA, 'FORD', pd.NA, 'MAZDA', pd.NA, pd.NA],
    '4WAS(FRONT)': ['Model', pd.NA, pd.NA, pd.NA, 'h2', pd.NA, 'h3', 'h3', 'h3']
})

# 2. 对指定列执行前向填充
# 单独填充English列
df['English'] = df['English'].ffill()
# 如果需要同时填充第四列,再加一行即可
df['4WAS(FRONT)'] = df['4WAS(FRONT)'].ffill()

效果验证

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

  • 前4行English列还未出现有效品牌值,NA原样保留
  • 第5行出现FORD后,第6行的NA自动填充为FORD
  • 第7行出现MAZDA后,第8、9行的NA自动填充为MAZDA

R 语言实现方案

如果使用R处理数据,直接调用tidyr包的fill函数即可实现相同效果:

library(tidyverse)

df <- df %>%
  # 指定要填充的列,.direction设为down即向下前向填充
  fill(English, `4WAS(FRONT)`, .direction = "down")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 01:36:00