如何筛选DataFrame中零值数量少于3的行(排除id列)
筛选DataFrame中指定列外零值数量少于3的行
给定包含id列的DataFrame,需筛选出除id列外零值数量少于3的行(统计零值时忽略id列)。以下是具体实现方案:
代码实现
import pandas as pd # 构造示例数据 data = { 'id': [1, 0, 2, 3], 'a': [1, 2, 0, 0], 'b': [3, 0, 0, 0], 'c': [4, 0, 0, 1], 'd': [0, 2, 3, 5] } df = pd.DataFrame(data) # 计算除id列外每行的零值个数 zero_count = df.drop('id', axis=1).eq(0).sum(axis=1) # 筛选零值数少于3的行 result_df = df[zero_count < 3] print(result_df)
输出结果
id a b c d 0 1 1 3 4 0 1 0 2 0 0 2 3 3 0 0 1 5
关键逻辑说明
df.drop('id', axis=1):移除id列,只针对其他列统计零值.eq(0):将所有元素与0对比,生成布尔值矩阵(0对应True,非0对应False).sum(axis=1):按行求和,得到每行的零值总数df[zero_count < 3]:根据零值总数筛选出符合条件的行,保留原DataFrame的所有列
内容的提问来源于stack exchange,提问作者Sadcow
相关产品推荐
相关产品推荐

