gpt4 book ai didi

pandas - Pandas 中的分组召回

转载 作者:行者123 更新时间:2023-12-04 10:22:54 29 4
gpt4 key购买 nike

我有一个数据框,如下所示。

Category     Actual       Predicted
1 1 1
1 0 1
1 0 0
1 0 0
2 1 1
2 1 0
2 0 0
2 0 1
3 1 1
3 0 1
3 0 0
3 0 1

从上面我想计算每个类别 1、2 和 3 的召回率,如下所示。

预期输出:
Category    Recall_for     Recall
1 0 66.7
1 1 100
2 0 50
2 1 50
3 0 33.3
3 1 100

解释:

对于category = 1, Actual = 1,有1种情况为true(与Predicted匹配),所以recall = 1/1*100 = 100

对于category = 1,Actual = 0,有3个case,只有2个true(与Predicted匹配),所以recall = 2/3*100 = 66.7,依此类推。

最佳答案

将两列与 Series.eq 进行比较, 通过 DataFrame.assign 设置新列,然后聚合 mean ( True s 像 1 一样处理)并在必要时最后多个和舍入值:

s = df['Predicted'].eq(df['Actual'])
df = (df.assign(Recall=s)
.groupby(['Category','Actual'])['Recall']
.mean()
.mul(100)
.round(1)
.reset_index()
.rename(columns={'Actual':'Recall_for'}))
print (df)
Category Recall_for Recall
0 1 0 66.7
1 1 1 100.0
2 2 0 50.0
3 2 1 50.0
4 3 0 33.3
5 3 1 100.0

关于pandas - Pandas 中的分组召回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60756978/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com