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

如何使用多个布尔条件过滤pandas中的DataFrame数据

错误原因

你给布尔条件外层额外添加了方括号[],原本和DataFrame行数(长度为3)匹配的布尔序列被包裹成了长度为1的列表,pandas索引时无法匹配长度,因此抛出ValueError。

解决方法

方案1:修改原代码去掉多余方括号

注意多个布尔条件组合时,每个条件都需要用小括号包裹,避免运算符优先级错误:

# 避免使用filter作为变量名,会覆盖Python内置的filter()函数
filter_cond = (df['b'] == 2) | (df['b'] == 5)
df = df[filter_cond]
print(df)

方案2:多离散值匹配更推荐用isin()方法

如果是匹配同一列的多个离散值,用isin()写法更简洁,后续新增匹配值时只需修改列表参数即可:

filter_cond = df['b'].isin([2, 5])
df = df[filter_cond]
print(df)

两种方案运行后均可得到你需要的结果:

a  b  c
0  1  2  3
1  4  5  6

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 08:06:06