как добавить столбец с количеством вхождений по двум полям - PullRequest
1 голос
/ 07 мая 2019

У меня есть следующий df:

df = pd.DataFrame({'c1': [1,5,2,2,2,5],'c2':[2,2,2,2,1,2]})

   c1  c2
0   1   2
1   5   2
2   2   2
3   2   2
4   2   1
5   5   2

Я пытаюсь получить

   c1  c2  c3
0   1   2   1
1   5   2   2
2   2   2   2
3   2   2   2
4   2   1   1
5   5   2   2

Я начал с

df['c3'] = df.groupby('c1')['c2'].transform('size')

, но не знаю какгруппировка по двум столбцам.

Ответы [ 2 ]

1 голос
/ 07 мая 2019

, если вам нужно просто сосчитать, используя группу, то вы можете попробовать, как показано ниже

import pandas as pd

df = pd.DataFrame({'c1': [1,5,2,2,2,5],'c2':[2,2,2,2,1,2]})

print (df.groupby(['c1', 'c2']).size().reset_index(name='counts'))
0 голосов
/ 07 мая 2019

Использование list.count:

l = df.values.tolist()
df['c3'] = [l.count(i) for i in l]

Вывод:

   c1  c2  c3
0   1   2   1
1   5   2   2
2   2   2   2
3   2   2   2
4   2   1   1
5   5   2   2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...