如何用Pandas统计指定列满足条件的数量并筛选结果
一步实现Pandas行筛选需求
直接用以下一行代码就能完成你的需求,无需中间列:
filtered_df = df[(df[['colB', 'colC', 'colD', 'colE']] > 0).sum(axis=1) > 1]
代码逻辑拆解:
df[['colB', 'colC', 'colD', 'colE']] > 0:对指定列的每个元素做大于0的判断,生成由布尔值组成的DataFrame.sum(axis=1):按行求和(布尔值True等价于1,False等价于0),得到每行中数值大于0的列的数量> 1:以"数量大于1"为筛选条件,直接返回符合要求的原DataFrame子集
这个写法把统计和筛选合并成一步,省去了新增临时列再删除的操作,代码更简洁高效。
内容的提问来源于stack exchange,提问作者Screamcheese
相关产品推荐
相关产品推荐

