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

使用df.replace()无法替换DataFrame中的nan字符串问题求助

解决DataFrame中缺失值无法用replace('nan', 0)替换的问题

问题原因

你用data.replace('nan', 0)是在替换字符串类型的'nan',但DataFrame里的nan实际是Python的缺失值类型(比如numpy.nan或pd.NA),并非字符串,所以这个方法无法匹配到目标值。

解决方案

方法1:用fillna()直接填充缺失值

这是pandas处理缺失值的标准方法,专门针对np.nan/pd.NA类型的缺失值:

# 直接替换所有缺失值为0(修改原DataFrame)
data.fillna(0, inplace=True)
# 或者不修改原DataFrame,返回新对象
data = data.fillna(0)

方法2:同时处理字符串'nan'和缺失值

如果数据里同时存在字符串'nan'和缺失值,先把字符串转成缺失值再统一填充:

# 先将字符串'nan'转为缺失值,再替换为0
data = data.replace('nan', pd.NA).fillna(0)

方法3:读取文件时提前处理

在读取CSV时直接把字符串'nan'识别为缺失值,后续一步填充:

file = 'RAO.txt'
# 读取时指定na_values,将字符串'nan'转为缺失值
data = pd.read_csv(file, sep="\t", header=None, skiprows=1, na_values=['nan'])
data = data.drop(data.columns[-1], axis=1).fillna(0)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 06:53:13