python - 使用列表中定义的多个条件过滤 Pandas 数据框

标签 python pandas

我有 pandas DataFrame,我想根据多个条件对其进行过滤。条件作为可变长度的列表传入。

下面是过滤 DataFrame 的基本代码:

>>>> conditions = ["a","b"]    
>>>> df1 = pd.DataFrame(["a","a","b","b","c"])
>>>> df1
   0
0  a
1  a
2  b
3  b
4  c
>>>> df2 = df1[(df1[0] == conditions[0]) | (df1[0] == conditions[1])]
>>>> df2
   0
0  a
1  a
2  b
3  b

如果我不知道传入的条件数量,是否有一种简单的方法来检查所有条件?

谢谢

最佳答案

您可以使用 DataFrame.isin() .

df2 = df1[df1[0].isin(conditions)]

关于python - 使用列表中定义的多个条件过滤 Pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35585601/

相关文章:

python - 有没有一种 pythonic 方法来获取可迭代中相同值的簇的开始和结束索引?

python - Pandas 按行号分组产生意外输出

python - Seaborn 箱线图沿 x 轴错误移动

python - 如何在方法中同时访问 cls 和 self

python - 读取 3.2 GB 文件时 Pandas/Python 内存峰值

python - 在 pandas 数据框中,根据其他两列的结果生成第三列数据

python - 用多列交换或交换 pandas 数据框中的列名

python - 从 Beam 管道连接 google cloud sql postgres 实例

python - 安装了 mitmproxy OSX 但找不到 .mitproxy 目录

python - 如何使用 nltk 正则表达式模式来提取特定的短语 block ?