在 Pyhton 中使用条件 groupby 和 count 计算分类列的百分比

Lil*_*ili 2 python group-by pandas

我想计算每个 id 的所有行中 True 值的百分比。

这是我的数据示例:

id     col1    
 1     True
 1     True
 1     False
 1     True
 2     False
 2     False
Run Code Online (Sandbox Code Playgroud)

新列应如下所示:

id     col1    num_true
 1     True     0.75
 1     True     0.75
 1     False    0.75
 1     True     0.75
 2     False    0
 2     False    0
Run Code Online (Sandbox Code Playgroud)

这就是我试图做的:

df['num_true']= df[df['col1'] == 'True'].groupby('id')['col1'].count()
df['num_col1_id']= df.groupby('id')['col1'].transform('count')

df['perc_true']= df.num_true/df.num_col1_id
Run Code Online (Sandbox Code Playgroud)

wwn*_*nde 5

groupby并申请transform获得mean

df['num_true']=df.groupby('id').col1.transform('mean')



  id   col1  num_true
0   1   True      0.75
1   1   True      0.75
2   1  False      0.75
3   1   True      0.75
4   2  False      0.00
5   2  False      0.00
Run Code Online (Sandbox Code Playgroud)