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

如何将pandas DataFrame中NaN替换为empty_row并解决ValueError报错

问题原因
  • 你写的df['col2'] == 'NaN'返回的是一整列布尔值的Series对象,if语句只能判断单个布尔值的真假,无法对整个Series做判断,因此触发了ValueError。
  • pandas中的NaN是空值类型,不是字符串'NaN',用字符串匹配无法正确识别空值,同时注意列名大小写敏感,你代码里写的col2和实际列名Col2不匹配也会导致后续报错。
解决方案

方法1:使用fillna直接替换空值(推荐)

fillna是pandas专门用来处理空值替换的接口,一行代码即可完成需求:

df['Col2'] = df['Col2'].fillna('empty_row')

方法2:使用loc条件定位赋值

如果需要搭配更复杂的条件判断逻辑,可以用loc定位到空值行再赋值:

df.loc[df['Col2'].isna(), 'Col2'] = 'empty_row'

你可以用下面的代码测试效果:

import pandas as pd
import numpy as np

# 构造示例DataFrame
df = pd.DataFrame({
    'Col1': ['A1', 'A2', 'A3', 'A4', 'A5', 'A6'],
    'Col2': ['finished', 'ongoing', np.nan, 'finished', 'started', np.nan],
    'Col3': [1234, 1235, 1236, 1237, 1238, 1239]
})

# 替换空值
df['Col2'] = df['Col2'].fillna('empty_row')
print(df)

运行后输出结果和你期望的完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:45:05