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

基于列值筛选DataFrame:获取值大于10的索引列表

解决DataFrame筛选指定值条件的索引问题

嘿,我来帮你搞定这个问题!你现在的代码返回带NaN的完整DataFrame,是因为直接对整个DataFrame应用了布尔条件,没有精准筛选符合要求的行并提取索引。

问题分析

你的原始代码 id_outlier = df1[df1 > 10] 会遍历DataFrame的每个元素,把不满足>10的位置替换成NaN,所以得到的是带空值的结构,而非你想要的索引列表。

正确解决方案

先明确你需要的是value大于10还是大于等于10(毕竟你期望的结果包含loc1,它的value是10),两种情况的代码如下:

情况1:获取value > 10的索引列表

# 筛选value列大于10的行,提取索引并转为列表
id_outlier = df1[df1['value'] > 10].index.tolist()

执行结果:['loc4', 'loc5']

情况2:获取value >= 10的索引列表(匹配你期望的输出)

# 筛选value列大于等于10的行,提取索引并转为列表
id_outlier = df1[df1['value'] >= 10].index.tolist()

执行结果:['loc1', 'loc4', 'loc5']

补充说明

  • 必须指定具体列(这里是df1['value'])来应用布尔条件,才能精准定位符合要求的行。
  • .index用于获取筛选后行的索引,.tolist()可以把索引对象转换成普通Python列表,方便后续使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:38:07