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)
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)