0

0

如何在 Pandas 中正确使用 isin() 与其他条件联合筛选数据

霞舞

霞舞

发布时间:2025-12-29 22:50:02

|

109人浏览过

|

来源于php中文网

原创

如何在 Pandas 中正确使用 isin() 与其他条件联合筛选数据

本文详解 pandas 中 `isin()` 与等值、类型匹配等组合条件的正确用法,重点解决因数据类型不一致(如年份误用字符串 `'2022'` 匹配整数 `2022`)导致筛选结果为空的常见问题

在使用 Pandas 进行数据筛选时,isin() 是高效判断列值是否属于指定集合的常用方法。但当它与其它条件(如年份等于 2022)组合使用时,数据类型不匹配是最隐蔽也最常导致“返回空 DataFrame”的原因。

例如,以下代码看似合理,却可能返回零条记录:

df.loc[(df['Item Code'].isin(['04901', '04940'])) & (df['Year'] == '2022')]

问题根源在于:若 df['Year'] 列的实际数据类型为 int64(即数值型年份),而你用字符串 '2022' 去比较,Pandas 会执行严格类型匹配——2022 == '2022' 恒为 False,整个布尔索引全为 False,最终返回空结果。

✅ 正确做法是确保比较值的数据类型与列一致:

  • 若 Year 列为整数(推荐且常见):

    寻鲸AI
    寻鲸AI

    寻鲸AI是一款功能强大的人工智能写作工具,支持对话提问、内置多场景写作模板如写作辅助类、营销推广类等,更能一键写作各类策划方案。

    下载
    df[(df['Item Code'].isin(['04901', '04940'])) & (df['Year'] == 2022)]
  • 更简洁、可读性更强的写法(推荐使用 .eq() 避免括号歧义):

    df[df['Item Code'].isin(['04901', '04940']) & df['Year'].eq(2022)]

⚠️ 注意事项:

  • 永远先检查数据类型:使用 df['Year'].dtype 确认列类型,必要时用 df['Year'] = df['Year'].astype(int) 统一;
  • & 是位运算符,必须用圆括号包裹每个条件(& 优先级高于 == 和 isin()),否则会报 ValueError: The truth value of a Series is ambiguous;
  • 避免混用 loc 和纯布尔索引:除非需同时选行列,否则直接 df[condition] 更简洁高效;
  • 若 Item Code 本身是数值型(如 int),则 isin([4901, 4940]) 才匹配,注意字符串与数字的双重一致性。

总结:Pandas 筛选失效,80% 源于类型不匹配。养成 print(df['Year'].dtype) 和 print(df['Year'].head()) 的调试习惯,能快速定位并修复此类问题。

相关专题

更多
Python 时间序列分析与预测
Python 时间序列分析与预测

本专题专注讲解 Python 在时间序列数据处理与预测建模中的实战技巧,涵盖时间索引处理、周期性与趋势分解、平稳性检测、ARIMA/SARIMA 模型构建、预测误差评估,以及基于实际业务场景的时间序列项目实操,帮助学习者掌握从数据预处理到模型预测的完整时序分析能力。

49

2025.12.04

python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end=' ', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

183

2023.09.27

数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

295

2023.10.31

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

216

2025.10.31

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1431

2023.10.24

Go语言中的运算符有哪些
Go语言中的运算符有哪些

Go语言中的运算符有:1、加法运算符;2、减法运算符;3、乘法运算符;4、除法运算符;5、取余运算符;6、比较运算符;7、位运算符;8、按位与运算符;9、按位或运算符;10、按位异或运算符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

221

2024.02.23

php三元运算符用法
php三元运算符用法

本专题整合了php三元运算符相关教程,阅读专题下面的文章了解更多详细内容。

77

2025.10.17

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

246

2023.08.03

俄罗斯搜索引擎Yandex最新官方入口网址
俄罗斯搜索引擎Yandex最新官方入口网址

Yandex官方入口网址是https://yandex.com;用户可通过网页端直连或移动端浏览器直接访问,无需登录即可使用搜索、图片、新闻、地图等全部基础功能,并支持多语种检索与静态资源精准筛选。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1

2025.12.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
R 教程
R 教程

共45课时 | 4.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号