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

在Jupyter Notebook中用Pandas过滤DataFrame的NaN值遇到问题

解决Pandas过滤「Artikelnr.」列NaN值的问题

情况1:列中是真正的Pandas缺失值(np.nan)

你之前用df['Artikelnr.'] == 'NaN'的错误在于,Pandas里的缺失值是特殊的浮点类型np.nan,不是字符串'NaN',直接用等于判断根本匹配不到。正确写法是使用isnull()或isna()(两者功能完全一致):

empty_art = df.loc[df['Artikelnr.'].isnull()]
# 也可以用更简洁的写法
empty_art = df[df['Artikelnr.'].isnull()]

情况2:列中是字符串形式的'NaN'

如果isnull()没生效,大概率是你的「Artikelnr.」列里的空值其实是字符串'NaN'(比如导入数据时系统没自动识别为缺失值),这时候直接匹配字符串即可:

empty_art = df.loc[df['Artikelnr.'] == 'NaN']
# 要是存在空格或大小写差异,还可以做预处理
empty_art = df.loc[df['Artikelnr.'].str.strip().str.lower() == 'nan']

额外建议:先确认空值类型

可以先查看列的类型和唯一值,搞清楚到底是哪种空值:

# 查看列的数据类型
print(df['Artikelnr.'].dtype)
# 查看列的所有唯一值(包括空值)
print(df['Artikelnr.'].unique())

如果输出里有nan(不带引号),说明是真正的缺失值;如果有'NaN'(带引号),说明是字符串类型的空标记。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 17:25:30