您可以基于总和、计数或多个变量过滤数据帧吗?

2024-05-08 04:10:35 发布

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

我试图根据一组or条件过滤熊猫数据帧,但它们都非常相似,我想知道是否有更有效的方法来编写这个

具体地说,我想包括数据帧(df)中的行,其中任何一组变量都是1:

df.query("Q50r5==1 or Q50r6==1 or Q50r7==1 or Q50r8==1 or Q50r9==1 or Q50r10==1 or Q50r11==1")

这将正确过滤到其中任何一个变量为1的行

但是,我希望有更多的情况需要将我的数据帧过滤为类似的内容,例如:

df.query("Q20r1==1 or Q20r2==1 or Q20r3==1")
df.query("Q23r2==1 or Q23r5==1 or Q23r7==1 or Q23r8==1")

关于.query()的pandas文档只指定了Python中其他地方可以使用的和/或类似的内容,因此这可能是执行此查询的唯一方法,但在查询中是否可以对这些列进行某种求和或计数?类似于“任何(1,Q20r1,Q20r2,Q20r3)”或“总和(Q20r1,Q20r2,Q20r3)>;0”

编辑:例如,使用以下小数据框: example dataframe

我想检索ID#s 1,2,4,5,7并排除#s 3和6,因为3和6在我所指的列中没有任何1


Tags: or数据方法内容df条件queryq50r8