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

如何筛选DataFrame中至少2列数值大于等于1的行

解决方法

完整代码

核心逻辑是逐行统计满足数值≥1的列数,筛选出列数≥2的行即可,完整实现代码如下:

import pandas as pd
import numpy as np

# 构造示例DataFrame,实际使用时可替换为你自己读取的数据源
df = pd.DataFrame({
    'col1': [np.nan, 2.45, 1.68, np.nan],
    'col2': [0.29, 0.8, 9.7, np.nan],
    'col3': [-0.03, np.nan, 1.18, -9],
    'col4': [1.45, 0.11, -145, -0.9],
    'col5': [45.67, np.nan, np.nan, 4.8]
}, index=[1,2,3,4])

# 核心筛选逻辑
filtered_df = df[df.ge(1).sum(axis=1) >= 2]

# 打印验证结果
print(filtered_df)

逻辑说明

  • df.ge(1) 是pandas的元素级大于等于判断方法,会对DataFrame每个值做是否≥1的校验,返回同结构的布尔值DataFrame,空值NaN会自动判定为False
  • sum(axis=1) 按行对布尔值求和,True按1计算、False按0计算,得到的结果就是每行符合≥1要求的列数量
  • 最后过滤出求和结果≥2的行,输出结果和你给出的预期完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 19:45:05