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

合并DataFrame后如何仅填充新增列的空值(Null)

仅填充Pandas合并后新增列的空值,保留原有列空值的方法

问题场景

合并两个DataFrame的代码如下:

import pandas as pd
df = pd.DataFrame({'ID': [1,2,3,4],
                   'Column A': [2, 3, 2, 3],
                  'Column B': [None, None, 3, None]})
df2 = pd.DataFrame({'ID': [1,2,4],
                   'Column C': [2, 3, 22]})
df = df.merge(df2, on='ID', how='left')

合并后输出结果:

ID  Column A  Column B  Column C
0   1         2       NaN       2.0
1   2         3       NaN       3.0
2   3         2       3.0       NaN
3   4         3       NaN      22.0

由于ID=3不存在于df2中,新增列Column C出现空值。需要仅填充该新增列的空值为0,同时保留原有列Column B的空值不变,预期输出:

ID  Column A  Column B  Column C
0   1         2       NaN       2.0
1   2         3       NaN       3.0
2   3         2       3.0       0.0
3   4         3       NaN      22.0

解决方案

方法1:针对指定列调用fillna

直接对Column C列使用fillna方法,指定填充值,不会修改其他列的空值:

df['Column C'] = df['Column C'].fillna(0)

方法2:用loc定位空值行赋值

通过布尔索引筛选出Column C为空的行,再批量赋值:

df.loc[df['Column C'].isna(), 'Column C'] = 0

执行任意一种方法后,即可得到符合预期的输出结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 21:57:57