我在使用groupby时遇到了问题,然后尝试获取以下各项的错误率:
label success
Ls1 true
Ls2 false
Ls2 false
Ls1 true
Ls3 true
Ls4 true
Ls4 false我希望看到的是下面这样的东西
label %failed
Ls1 0
Ls2 100
Ls3 0
Ls4 50任何帮助都将不胜感激。
发布于 2020-04-29 19:08:31
按组使用mean,但通过~反转掩码,然后通过100进行多次转换,并通过Series.reset_index将Series转换为Dataframe
df = (~df['success']).groupby(df['label']).mean().mul(100).reset_index(name='%failed')
print (df)
label %failed
0 Ls1 0.0
1 Ls2 100.0
2 Ls3 0.0
3 Ls4 50.0另一个想法是用Series.rsub从右边减去100
df = df.groupby('label')['success'].mean().mul(100).rsub(100).reset_index(name='%failed')
print (df)
label %failed
0 Ls1 0.0
1 Ls2 100.0
2 Ls3 0.0
3 Ls4 50.0https://stackoverflow.com/questions/61500369
复制相似问题