当Pandas中存在许多条件时,如何过滤数据?

2024-07-03 02:09:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个关于Python熊猫的问题

例如,数据集df有100行,列名为a1、a2、a3、,a20。如果我想找到a1=20、a2=1、a3=0、a4=1、a5=2、…、a20=1的特定行,如果存在这样的行,我如何过滤掉这些行

如果使用熊猫过滤器,应如何设置过滤器条件?我在考虑使用for循环根据每个条件进行过滤,在这种情况下,我必须过滤20次。如果有100个条件,这种方法似乎非常愚蠢。我想知道是否有更有效的方法


2条回答

当条件较多时,可逐步添加,形成过滤表达式:

filter = df['a1'] == 20
filter = filter & (df['a2'] == 1)
...
filter = filter & (df['a20'] == 1)
df = df[filter]

试试这个:

df = df[(df['a1'] == 20) & (df['a2'] == 1) & (df['a3'] == 0)]

相关问题 更多 >