Как создать столбец, который считает вхождения в другом столбце и не агрегирует строки в Python? - PullRequest
2 голосов
/ 10 июля 2019

Мне нужно подсчитать вхождения определенных элементов в столбце и добавить количество вхождений в качестве дополнительного столбца без удаления строк.

Я пробовал

df['counts']=df.no_.value_counts()

df['counts']=df.groupby(no_).count()

O21['count']=df.groupby('no_').transform('count') 

Вот чтоУ меня есть:

id|no| 
---------
1 |  1  | 
2 |  3  |  
3 |  3  | 
4 |  4  |  
5 |  2  |  

В идеале хотелось бы, чтобы это выглядело так

id|no_  |count(no_)| 
---------------
1 |  1  |   1 |  
2 |  3  |   2 |
3 |  3  |   2 | 
4 |  4  |   1 |  
5 |  2  |   1 |

1 Ответ

1 голос
/ 10 июля 2019

Вы близки, нужно указать столбец после groupby:

df['count'] = df.groupby('no_')['no_'].transform('count') 

Или использовать map:

df['counts']= df.no_.map(df.no_.value_counts())

print (df)
   id  no_  counts
0   1    1       1
1   2    3       2
2   3    3       2
3   4    4       1
4   5    2       1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...