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

如何在pandas中基于另一列的行值修改指定列的对应行数据

pandas实现A列空值用同⾏B列值替换的⽅案

最优实现代码

pandas内置的fillna()方法原生支持该需求,无需手动遍历,是性能最优的向量化实现:

# 直接用B列的值填充A列的NaN
df['A'] = df['A'].fillna(df['B'])

完整可复现示例

import pandas as pd
import numpy as np

# 构造测试数据
df = pd.DataFrame({
    'A': [1, np.nan, 3, np.nan, 5],
    'B': [10, 20, 30, 40, 50]
})

# 执行填充
df['A'] = df['A'].fillna(df['B'])
print(df)

运行输出结果:

A   B
0   1.0  10
1  20.0  20
2   3.0  30
3  40.0  40
4   5.0  50

可选实现:条件赋值(适合复杂扩展场景)

如果后续需要叠加更多判断逻辑,可以用loc条件索引实现:

df.loc[df['A'].isna(), 'A'] = df.loc[df['A'].isna(), 'B']

注意事项

  • 不建议用for循环逐行遍历处理,pandas向量化操作在大数据量下性能比遍历高数十到数百倍
  • 若需要保留原始A列数据,可以先复制备份再修改:df['A_filled'] = df['A'].fillna(df['B'])

原始数据参考

原始数据

预期结果参考

预期结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 04:06:01