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

筛选Pandas中A-F列仅单个值在(0,5]其余大于5的行

问题分析

你原来的代码存在核心逻辑错误:直接对列名(字符串类型)做数值比较,没有对对应列的实际取值做判断,也没有覆盖「其余5列取值均大于5」的限制条件。

实现代码

你可以用如下向量化操作完成筛选,性能远高于逐行遍历:

# 定位要判断的A-F列(示例中是最后6列)
target_cols = df.columns[-6:]
# 统计每行满足(0,5]区间的列数
count_in_range = ((df[target_cols] > 0) & (df[target_cols] <= 5)).sum(axis=1)
# 统计每行取值大于5的列数
count_gt5 = (df[target_cols] > 5).sum(axis=1)
# 筛选同时满足1个列在(0,5]、5个列大于5的行
result_df = df[(count_in_range == 1) & (count_gt5 ==5)]
逻辑说明
  • 用sum(axis=1)对每行的布尔值统计计数,避免了低效的逐行apply操作
  • 同时校验两个计数条件,完全覆盖需求:既保证只有1个测点在0-5m区间,也保证其余所有测点都大于5m,自动排除了存在取值<=0的异常行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 21:54:04