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

Kaggle数据集性别列高效清洗:仅保留Male与Female

高效筛选Kaggle数据集性别列,仅保留'Male'和'Female'

你的代码问题分析

你之前的写法存在两处关键错误:

  1. 不能用Python原生的or处理pandas布尔序列筛选,需要用按位或运算符|;
  2. or 'Female'的逻辑完全错误——非空字符串在Python中会被判定为True,导致筛选结果混乱;
  3. 分两次单独筛选Male和Female会清空数据集,因为没有行能同时满足两个互斥条件。

正确的高效筛选方法

方法1:使用isin()(推荐,简洁高效)

isin()是pandas针对多值匹配的最优方案,直接传入目标值列表即可快速筛选:

df_clean = df_clean[df_clean["Gender"].isin(['Male', 'Female'])]

方法2:使用布尔索引(按位或)

如果要显式写出每个条件,需要给每个判断加括号,并用|连接:

df_clean = df_clean[(df_clean["Gender"] == 'Male') | (df_clean["Gender"] == 'Female')]

进阶补充(可选)

如果你的数据中存在'Male teen'、'Female High-schooler'这类包含目标关键词的记录,且希望保留这些行,可以用str.contains()做模糊匹配(支持忽略大小写):

# 匹配包含Male/Female的行,同时排除空值
df_clean = df_clean[df_clean["Gender"].str.contains(r'Male|Female', case=False, na=False)]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 01:42:27