Значение группы Pandas и возврат количества наблюдений в набор данных - PullRequest
0 голосов
/ 05 июня 2019

У меня есть набор данных, подобный следующему:

id    value
a      0
a      0
a      0
a      0
a      1
a      2
a      2
a      2
b      0
b      0
b      1
b      2
b      2

Я хочу сгруппировать по столбцу «id» и захватить количество наблюдений в столбце «value» и вернуть новый столбец в исходном наборе данных, который подсчитывает количество раз, когда наблюдение «value» происходит внутри каждого идентификатора.

Пример вывода, который я ищу, представлен в столбце «output»:

id    value    output
a      0        4
a      0        4 
a      0        4
a      0        4
a      1        1
a      2        3
a      2        3
a      2        3
b      0        2
b      0        2
b      1        1 
b      2        2
b      2        2

При группировке по идентификатору «a» имеется 4 наблюдения по 0, что указывается в столбце «выходные данные» для каждой строки, содержащей идентификатор «a» и значение 0.

Я пробовал приложения группового и применять, но безрезультатно. Любые предложения будут очень полезны. Спасибо.

Ответы [ 2 ]

0 голосов
/ 06 июня 2019

Обновление: я нашел решение для любого, кто также сталкивается с этой проблемой, и оно работает хорошо.

grouped = df.groupby(['id','value'])
df['output'] = grouped['value'].transform('count')

Это вернет счет наблюдений под каждым сегментом и вернеткоторые учитываются для каждого наблюдения, соответствующего этому критерию, как показано в столбце «выходные данные» выше.

0 голосов
/ 06 июня 2019

группировать по идентификатору и значению, а затем считать значение.

data.groupby(['id' , 'value'])['id'].transform('count')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...