Суммируйте количество логических значений (на основе групп значений в другом столбце) внутри нового столбца - PullRequest
0 голосов
/ 12 июля 2020

У меня есть DataFrame со следующей структурой:

col1  col2   col3 
1     True   
1     True   
2     False  
2     True   
2     False
3     False  
3     False  

В 'col3' Я хотел бы суммировать количество True значений для каждой группы значений в 'col1'.

В приведенном выше примере это должно выглядеть так:

col1  col2    col3 
1     True    2
1     True    2
2     False   1
2     True    1
2     False   1
3     False   0
3     False   0

Ответы [ 2 ]

2 голосов
/ 12 июля 2020

Сделаем transform

df['col3']=df.groupby('col1').col2.transform('sum')
1 голос
/ 12 июля 2020

Попробуйте

df['col3'] = df.groupby('col1', sort=False).col2.transform(sum)

Вывод

   col1   col2  col3
0     1   True   2.0
1     1   True   2.0
2     2  False   1.0
3     2   True   1.0
4     2  False   1.0
5     3  False   0.0
6     3  False   0.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...