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

Pandas合并DataFrame后用.loc替换字符串遇NaN报错求解决方案

解决合并DataFrame后字符串替换的NaN掩码错误

问题根源

合并得到的final_df中,CustName列存在NaN值,str.contains()遇到NaN会返回NaN,而loc的布尔掩码不允许包含非布尔值(NaN),因此触发ValueError。

直接修复方案

在str.contains()里添加na=False参数,将NaN直接判定为False,确保掩码全为布尔值:

final_df.loc[final_df['CustName'].str.contains('bbb', case=False, na=False), 'CustomerName'] = 'Big Boy Booty'

备选处理方式

如果需要先清理空值,可先将NaN填充为空字符串再执行替换:

# 填充CustName列的NaN为空字符串
final_df['CustName'] = final_df['CustName'].fillna('')
# 执行替换操作
final_df.loc[final_df['CustName'].str.contains('bbb', case=False), 'CustomerName'] = 'Big Boy Booty'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 07:15:06