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

如何先按y_pred分组再基于y_true分组计算对应y_true均值?

解决方案:按y_pred分组计算y_true均值

首先,你的原始数据构造代码:

import pandas as pd

d = {'id': [1, 2, 3, 4, 5, 6],
     'y_true': [0, 0, 1, 1, 1, 0],
     'y_pred': [0.23, 0.01, 0.19, 0.01, 0.3, 0.23]
    }
df = pd.DataFrame(data=d)

要实现按y_pred分组,计算每组y_true的均值,不需要手动逐行处理,直接用pandas的groupby结合mean方法就能高效完成:

# 按y_pred分组计算y_true均值,转为标准DataFrame
df1 = df.groupby('y_pred')['y_true'].mean().reset_index()

# 调整列顺序以匹配期望结果(可选)
df1 = df1[['y_true', 'y_pred']]

运行后得到的结果完全符合你的预期:

y_true  y_pred
0     0.0    0.23
1     0.5    0.01
2     1.0    0.19
3     1.0    0.30

代码说明:

  • df.groupby('y_pred')['y_true']:按y_pred的取值分组,仅保留y_true列用于后续计算
  • .mean():对每个分组内的y_true值计算平均值
  • .reset_index():将分组后的索引(即y_pred的取值)转为普通列,生成结构规整的DataFrame
  • 最后调整列顺序是为了和你给出的目标结果列顺序一致,若不需要可省略这一步

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 11:05:39