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

Python Jupyter Notebook多条件布尔索引报错求助:筛选幸存女性乘客

解决泰坦尼克号数据集多条件筛选问题

错误原因

你写的代码报错是因为链式索引(先筛选幸存乘客再找女性)会生成一个和原数据集titan_sub索引不匹配的布尔序列,导致索引对齐失败,触发IndexingError。

正确写法(两种简单方案)

方案1:用&连接多条件(需加括号)

直接在原数据集上同时判断两个条件,避免索引错位:

# 筛选幸存的女性乘客
survived_females = titan_sub[(titan_sub['survived'] == 1) & (titan_sub['sex'] == 'female')]
# 查看她们的舱位等级(如果字段是英文请改成'pclass')
print(survived_females['舱位等级'])

方案2:用query()方法(更直观易读)

适合新手的简洁写法,直接用类SQL的语法:

# 筛选条件用字符串写,更易懂
survived_females = titan_sub.query('survived == 1 and sex == "female"')
# 查看舱位等级
print(survived_females['舱位等级'])

补充说明

  • 多条件筛选时,&代表逻辑“与”,|代表逻辑“或”,每个条件必须用括号包裹,否则会触发运算优先级错误。
  • 如果只想保留舱位等级这一列,可以直接在筛选时指定:
# 直接获取幸存女性的舱位等级列
survived_female_pclass = titan_sub.loc[(titan_sub['survived'] == 1) & (titan_sub['sex'] == 'female'), '舱位等级']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 01:07:06