我有一个数据帧df:
route value
1 1 1
2 2 2
3 2 2
4 2 1
5 1 2
列值给出成功(2)或失败(1),我想创建第三列,给出每条路由的成功率。
所需输出:
route value Rate
1 1 1 0.5
2 2 2 0.66
3 2 2 0.66
4 2 1 0.66
5 1 2 0.5
谢谢你的帮助
试试transform
和groupby
df['Rate'] = df['value'].eq(2).groupby(df['route']).transform('mean')
df
Out[611]:
route value Rate
1 1 1 0.500000
2 2 2 0.666667
3 2 2 0.666667
4 2 1 0.666667
5 1 2 0.500000