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

如何让Python筛选并打印数据集中大于上限栅栏的具体数值?

解决方法

你的问题出在直接打印了布尔判断的结果,而没有用这个布尔条件去筛选原数据里的具体数值。

原代码问题分析

df['Hours'] >= greater_fence会生成一个和原列长度一致的布尔Series,直接打印它自然会输出一堆True/False。而且你写的if df['Hours'] >= greater_fence这种写法在pandas里不规范,会触发ValueError(因为Series无法直接作为if的判断条件)。

正确写法

要提取大于greater_fence的具体数值,直接用布尔索引筛选即可:

# Finding Outliers
lower_fence = q1 - (1.5 * iqr)
print('Lower Fence:', lower_fence)
greater_fence = q3 + (1.5 * iqr)
print('Greater Fence:', greater_fence)

# 筛选并打印大于greater_fence的Hours数值
outlier_values = df[df['Hours'] > greater_fence]['Hours']
print(outlier_values)

# 如果想逐个打印每个数值,用循环:
for val in outlier_values:
    print(val)

补充说明

  • 用df['Hours'] > greater_fence作为索引,会直接提取原DataFrame中满足条件的行,再取Hours列就得到了所有符合要求的具体数值。
  • 如果需求是包含等于greater_fence的数值,把>改成>=即可。

内容的提问来源于stack exchange,提问作者Jacob St. John

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 04:55:28