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

如何快速获取多DataFrame中X≈1.0对应的Y值范围?

解决方案

假设你的10个DataFrame已存在(比如命名为df1到df10),可以用以下Python代码快速完成需求:

步骤1:统一管理所有DataFrame

先把所有DataFrame放入一个列表,方便批量处理:

import pandas as pd

# 将所有DataFrame存入列表
df_collection = [df1, df2, df3, df4, df5, df6, df7, df8, df9, df10]

步骤2:定义函数提取单个DataFrame的目标Y值

这个函数会筛选出X接近1.0的行,返回最接近1.0的X对应的Y值(也可根据需求调整为取范围内Y值的均值):

def get_target_y(df, tolerance=0.01):
    # 筛选X在[0.99, 1.01]区间内的行
    valid_rows = df[(df['X'] >= 1 - tolerance) & (df['X'] <= 1 + tolerance)]
    if valid_rows.empty:
        return None  # 无符合条件的行时返回None,可根据需求修改
    # 找到X与1.0差值最小的行,返回对应的Y值
    closest_idx = (valid_rows['X'] - 1).abs().idxmin()
    return valid_rows.loc[closest_idx, 'Y']

步骤3:批量提取并计算Y值范围

遍历所有DataFrame收集Y值,再计算最大值与最小值的差值:

# 收集所有有效Y值(过滤掉无结果的情况)
target_ys = [y for y in map(get_target_y, df_collection) if y is not None]

# 计算Y值范围
y_range = max(target_ys) - min(target_ys)
print(f"所有目标Y值的范围为: {y_range}")

可选调整

  • 若你确认每个DataFrame必然存在接近1.0的X,可去掉空值判断,简化函数逻辑。
  • 若需要取X在阈值内所有Y值的平均值,将函数返回值改为valid_rows['Y'].mean()即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 13:32:36