如何计算在python上满足多个条件的行数?

我正在尝试计算数据框中的行数,其中数据框中两列的值等于“清除”。我的代码是:

pass_both_checks = len(merged_outer(([merged_outer['result_x'] == 'clear']) & [merged_outer['result_y'] == 'clear']))

其中“merged_outer”是数据框,我希望结果是“result_x”列和“result_y”列等于“clear”的所有行的计数。

但是,我收到一个错误:

类型错误:& 不支持的操作数类型:“列表”和“列表”

我该如何解决?如果我在 pass_both_checks 的代码中只插入一个条件,它似乎工作正常。

回答

通过boolean indexing添加()周围条件进行过滤:

pass_both_checks = len(merged_outer[(merged_outer['result_x'] == 'clear') & 
                                    (merged_outer['result_y'] == 'clear')])

sum用于计数True

pass_both_checks = ((merged_outer['result_x'] == 'clear') & 
                    (merged_outer['result_y'] == 'clear')).sum()

或者比较两列并通过以下方式测试True每行是否所有s DataFrame.all

pass_both_checks = (merged_outer[['result_x', 'result_y']] == 'clear').all(axis=1).sum()


以上是如何计算在python上满足多个条件的行数?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>