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

如何删除从CSV读取的DataFrame中occupation列含问号的所有行?

问题分析与解决方法

你的代码没生效的核心原因是:把问号替换成空字符串后,这些行的occupation列是空字符串而非NaN,而dropna仅会删除值为NaN的行,自然无法过滤掉这些无效数据。

下面是几种直接有效的解决方式:

方法一:直接筛选有效行(最推荐)

一步到位过滤掉occupation列等于问号的行:

df = df[df['occupation'] != '?']

如果需要直接修改原DataFrame而非生成新对象,可结合索引删除:

df.drop(df[df['occupation'] == '?'].index, inplace=True)

方法二:替换后过滤空值

如果你的场景中occupation可能存在带问号的混合内容(比如?teacher),需要先清除问号再过滤空值:

# 替换问号为空(regex=False避免正则特殊字符干扰)
df['occupation'] = df['occupation'].str.replace('?', '', regex=False)
# 过滤掉空字符串(strip处理可能存在的空格)
df = df[df['occupation'].str.strip() != '']

方法三:用query简化写法

偏好简洁语法的话,可使用query实现筛选:

df = df.query("occupation != '?'")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 06:25:17