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

如何筛选Pandas DataFrame中Score值接近均值±0.001的记录并提取Age值

在Pandas中筛选Score值接近均值±0.001的记录并提取Age值

问题描述:
我拥有一个Pandas DataFrame,数据如下:

序号agescore
57299.424
67099.441
76999.442
86799.443
97199.448

其中score列的均值为99.4396(该均值为score列所有数值的平均值)。请问如何筛选出score值与该均值的差值在±0.001范围内的记录,并提取对应的age值?在本例中,符合条件的age值为67和69。

没问题,这是个很常见的Pandas数据筛选需求,我来一步步帮你实现:

步骤1:准备数据(已有DataFrame可跳过)

先把示例数据转换成Pandas DataFrame,方便后续操作:

import pandas as pd

data = {
    '序号': [5, 6, 7, 8, 9],
    'age': [72, 70, 69, 67, 71],
    'score': [99.424, 99.441, 99.442, 99.443, 99.448]
}
df = pd.DataFrame(data)

步骤2:计算Score列的均值

你可以选择自动计算均值(更通用,适合数据更新的场景),或者直接使用给定的固定均值:

# 方法1:自动计算均值
mean_score = df['score'].mean()

# 方法2:直接使用给定的均值
# mean_score = 99.4396

步骤3:筛选符合条件的记录

利用布尔索引筛选出score与均值的绝对值差≤0.001的行:

filtered_rows = df[abs(df['score'] - mean_score) <= 0.001]

步骤4:提取对应的Age值

从筛选后的结果中提取age列,转换成列表更方便后续使用:

target_ages = filtered_rows['age'].tolist()
print(target_ages)  # 输出结果:[69, 67]

完整代码整合

把所有步骤整合起来,完整代码如下:

import pandas as pd

# 初始化DataFrame
data = {
    '序号': [5, 6, 7, 8, 9],
    'age': [72, 70, 69, 67, 71],
    'score': [99.424, 99.441, 99.442, 99.443, 99.448]
}
df = pd.DataFrame(data)

# 计算均值(或直接赋值99.4396)
mean_score = df['score'].mean()

# 筛选并提取age
target_ages = df[abs(df['score'] - mean_score) <= 0.001]['age'].tolist()

print("符合条件的age值:", target_ages)

运行这段代码后,就能得到你需要的结果[69, 67]啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 08:03:11