python - 使用条件 groupby 计算分类列的百分比并在 Python 中计数

标签 python pandas group-by

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

这是我的数据示例:

id     col1    
 1     True
 1     True
 1     False
 1     True
 2     False
 2     False

新列应如下所示:

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

这是我尝试做的:

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

最佳答案

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

关于python - 使用条件 groupby 计算分类列的百分比并在 Python 中计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63394796/

相关文章:

python - 生成唯一数字的大随机序列

python - 在 python 中将参数传递给 COM 对象

python - 识别缺失值并返回包含这些值的列表

python-3.x - IndexError : index 43462904 is out of bounds for size 43462904

mysql - groupby 创建的表中某列的总和

python - Celery @task 不适用于实例方法

python - 使用带有掩码的 calcHist 时出错

python - Pandas value_counts() 中的值分组

python - 使用 python 替换日期列中缺少的月份和年份

c# - 我可以将同一对象添加到 LINQ 中的多个组吗?