如何先按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
相关产品推荐
相关产品推荐

