You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何筛选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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 05:35:23