gpt4 book ai didi

python - 如何在 Pandas 中进行 Groupby 比率计算

转载 作者:行者123 更新时间:2023-11-28 17:04:27 26 4
gpt4 key购买 nike

我有一个 pandas 数据框,如下所示。对于起点和终点组合,我需要计算 Flag 列的值等于 Y 时的成功率。

输入

ORG DSTN    FLAG
LON SIN Y
ADL SIN N
SIN LON N
LON SIN Y
LON SIN N
ADL SIN Y
ADL SIN N
SIN LON Y
SIN LON Y
SIN LON Y
SIN LON N
LON SIN N

预期输出

ORG DSTN    FLAG    Ratio
LON SIN Y 0.5
ADL SIN N 0.3
SIN LON N 0.6
LON SIN Y 0.5
LON SIN N 0.5
ADL SIN Y 0.3
ADL SIN N 0.3
SIN LON Y 0.6
SIN LON Y 0.6
SIN LON Y 0.6
SIN LON N 0.6
LON SIN N 0.5

如何在 pandas 中完成此操作。

最佳答案

value_countsnormalize=True 一起使用:

s = (df.groupby(['ORG', 'DSTN']).FLAG
.value_counts(normalize=True).rename('Ratio').reset_index()
)

然后将 FLAG 等于 N 的行更改为其对应的 Y 值,并合并:

s.loc[s.FLAG.eq('N'), 'Ratio'] = 1.0 - s.Ratio
df.merge(s, how='left')

   ORG DSTN FLAG     Ratio
0 LON SIN Y 0.500000
1 ADL SIN N 0.333333
2 SIN LON N 0.600000
3 LON SIN Y 0.500000
4 LON SIN N 0.500000
5 ADL SIN Y 0.333333
6 ADL SIN N 0.333333
7 SIN LON Y 0.600000
8 SIN LON Y 0.600000
9 SIN LON Y 0.600000
10 SIN LON N 0.600000
11 LON SIN N 0.500000

关于python - 如何在 Pandas 中进行 Groupby 比率计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51977715/

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