我试图根据一组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”
我想检索ID#s 1,2,4,5,7并排除#s 3和6,因为3和6在我所指的列中没有任何1
您可以使用
any
和axis = 1
来检查一行中是否至少有一个值是True
例如,您可以运行
相关问题 更多 >
编程相关推荐