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

如何基于条件用其他单元格值为pandas DataFrame缺失单元格赋值

Pandas按分组填充列缺失值解决方案

前提说明

如果你的DataFrame中x列的缺失值为字符串类型的'None',需要先替换为Pandas可识别的空值np.nan,如果本身就是原生None/空值可跳过该步骤。

实现代码

import pandas as pd
import numpy as np

# 构造示例数据,实际使用时替换为你自己的DataFrame即可
df = pd.DataFrame({
    'x': ['xyz', 'lmn', None, 'xyz', 'qrs', None],
    'a': ['A', 'B', 'A', 'A', 'C', 'B']
})

# 替换字符串形式的None为空值(按需执行)
df['x'] = df['x'].replace('None', np.nan)

# 核心逻辑:按a列分组,用同组x列的非空值填充缺失值
# 写法1:适配非空值在分组内任意位置的场景,兼容性最好
df['x'] = df.groupby('a')['x'].transform(lambda g: g.ffill().bfill())

# 写法2:如果确认每个a分组对应的x非空值唯一,该写法性能更高
# df['x'] = df['x'].fillna(df.groupby('a')['x'].transform('first'))

结果验证

执行后输出的df和你预期的处理结果完全一致:

xa
xyzA
lmnB
xyzA
xyzA
qrsC
lmnB

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 16:06:00