计算每组结果的百分比

Calculating the percentage of an outcome per group

有一个预测模型输出的数据框,它被分成三分位数(低、中和高风险)。我想计算每个风险区域中有感兴趣结果的人的百分比。

import pandas as pd

data = {'risk_group':  ["medium", "low", "high", "low", "high", "high", ....],
        'outcome': [1, 0, 1, 0, 1, 1, ....}

df = pd.DataFrame (data, columns = ['risk_group','outcome'])

理论上所需的输出是具有

的数据帧
low : 12% w/ outcome
medium : 34% w/ outcome
high: 78% w/ outcome

使用:

df.groupby('risk_group').outcome.apply(lambda x: x.sum()/x.size * 100)