python - 如何在多列上同时按条件列表过滤 DataFrame 行
问题描述
我有一个 DataFrame,我想在其中过滤行,应用同时适用于两列的条件列表。例如:
pd.DataFrame({'A':['Y','Y','Y','Z','Z'],'B':[1,2,2,3,4],'C':[100,200,234,358,4243]})
A B C
0 Y 1 100
1 Y 2 200
2 Y 2 234
3 Z 3 358
4 Z 4 4243
filter_on=[('Y',2),('Z',4)]
当过滤A和B在filter_on有任何几个值时,我应该得到以下 DataFrame:
A B C
1 Y 2 200
2 Y 2 234
4 Z 4 4243
解决方案
isin
转换为后尝试tuple
out = df[df[['A','B']].apply(tuple,1).isin(filter_on)].copy()
A B C
1 Y 2 200
2 Y 2 234
4 Z 4 4243
推荐阅读
- database - Like 运算符不可散列 - Teradata
- selenium - UnreachableBrowserException:与远程浏览器通信时出错。它可能已经死了,并且 Command 未能干净地关闭。强行破坏
- php - Laravel 的 deleteDirectory 忽略了保留标志
- android - Android上的Unity Sqlite本地数据库奇怪的字母
- json - 反序列化新的 Moodle 日志 Json 格式
- node.js - 在一个页面中同时加载 2 个 react 应用程序。只有单个应用程序可见
- spring-mvc - 当我传递已经显示的参数时,为什么我得到一个空值?
- javascript - 如何从打字稿上的txt文件中获取数据?
- sql - utPLSQL - 将参数(l_message)传递到过程中。不传递价值。
- c++ - 如何更改 QComboBox 项目的高度大小?