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

如何用Pandas统计每行非零值数量并筛选符合条件的数据行?

在Pandas中统计每行非零值并筛选行

1. 统计每行的非零值数量

要统计DataFrame每行的非零值数量,可结合ne(0)(判断值是否非零)和sum(axis=1)(按行求和)实现,注意先排除非数值列(比如示例中的name列)。

首先创建示例DataFrame:

import pandas as pd

data = {
    'name': ['kim', 'yu', 'min'],
    'data1': [0, 0, 2],
    'data2': [1, 1, 0],
    'data3': [1, 1, 0]
}
df = pd.DataFrame(data)

计算每行非零值数量,可新增一列存储结果:

# 排除name列,计算每行非零值数量
df['non_zero_count'] = df.drop('name', axis=1).ne(0).sum(axis=1)

执行后,df会新增non_zero_count列,对应值分别为2、2、1。

2. 筛选符合条件的行

根据你的示例需求(保留kim、yu的行),这些行的非零值数量为2。如果要保留非零值数量≥2的行,直接用布尔索引筛选:

# 筛选非零值数量≥2的行
filtered_df = df[df['non_zero_count'] >= 2]

若不想新增列,也可直接在筛选时计算:

filtered_df = df[df.drop('name', axis=1).ne(0).sum(axis=1) >= 2]

注:你描述中提到"超过2个",但示例中kim、yu的非零值数量为2(并未超过2)。如果确实需要筛选非零值数量>2的行,只需将条件改为>2,但此示例中没有符合条件的行。

内容的提问来源于stack exchange,提问作者Shale

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 17:52:57