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

为何Pandas中Lambda函数无法填充Date列的NaN值?

问题原因

你这段代码不生效的核心原因是:np.nan无法通过==运算符判断。在Python中,np.nan == np.nan的返回值是False,所以你的lambda表达式里的条件永远不会触发,自然没法把NaN替换成'1'。

正确解决方案

推荐优先使用pandas原生的缺失值处理方法,效率更高且代码更简洁:

方法1:使用fillna(最推荐)

这是pandas专门为填充缺失值设计的方法,直接指定填充值即可:

df['Date'] = df['Date'].fillna('1')

方法2:修正apply的判断逻辑

如果一定要用apply,需要用专门的缺失值判断函数pd.isna()(兼容所有数据类型)或者np.isnan()(仅适用于数值类型):

import pandas as pd
df['Date'] = df['Date'].apply(lambda d: '1' if pd.isna(d) else d)

方法3:使用replace

可以直接把所有np.nan替换为目标值:

df['Date'] = df['Date'].replace(np.nan, '1')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 10:45:44