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

Pandas多条件筛选列取值遇Invalid index error问题求解

问题分析与解决

你的代码有三个明显问题,导致了索引错误:

  1. 变量名不统一:代码里混用了df和data两个变量名,得保持一致(假设原DataFrame叫df)。
  2. 逻辑运算优先级错误:&的优先级比==高,原代码里data["Package"] == 'Half' & (data['Age'] >= 50)会先计算'Half' & (data['Age'] >=50),完全不符合逻辑需求。必须把Package == 'Half'和Age >=50用括号括起来,保证这两个条件先做与运算。
  3. 索引方式错误:Pandas里不能直接用[条件, '列名']这种格式同时筛选行和列,得用.loc[行条件, 列名]的语法。

正确代码写法

写法一:修正逻辑括号与索引方式

subdf = df.loc[(df["Package"] == 'Full') | ((df["Package"] == 'Half') & (df['Age'] >= 50)), 'Name']

写法二:用isin简化条件(更清晰)

如果要判断Package是Full或Half,用isin比多次==更简洁,也不容易出错:

# 先定义筛选条件
filter_condition = (df["Package"].isin(['Full', 'Half'])) & (df['Age'] >= 50)
# 筛选Name列
subdf = df.loc[filter_condition, 'Name']

运行任意一种写法后,subdf都会输出你期望的结果:

Toni
Stark
Christ

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 03:55:12