Python:对Pandas DataFrame所有列进行多条件过滤求行数
统计DataFrame中数值满足3<x<7的行数
针对你的需求,这里提供两种常见场景的高效Pandas实现,均为向量化操作,适配大数据集:
场景1:统计至少有一列数值在4-6之间的行数
只要某一行存在任意一个符合条件的数值,即计入统计:
# 生成布尔矩阵,标记每个元素是否满足3<x<7 mask = (df > 3) & (df < 7) # 对每行判断是否存在符合条件的元素,再统计总数 valid_rows = mask.any(axis=1).sum()
如果仅针对整数4/5/6,也可以用isin更直观:
mask = df.isin([4,5,6]) valid_rows = mask.any(axis=1).sum()
场景2:统计所有列数值都在4-6之间的行数
要求一行的所有列数值均满足条件:
mask = (df > 3) & (df < 7) valid_rows = mask.all(axis=1).sum()
额外需求:统计所有符合条件的单元格总数
如果需要统计整个DataFrame里满足条件的单元格数量:
total_valid_cells = ((df > 3) & (df < 7)).sum().sum()
内容的提问来源于stack exchange,提问作者E_Sarousi
相关产品推荐
相关产品推荐

