Иерархическая группировка затем подсчитывает значение по другому столбцу в Python - PullRequest
0 голосов
/ 22 сентября 2018

У меня есть датафрейм в Пандах, я хочу сгруппировать по «имени», а затем посчитать количество каждого рейтинга.

Ckey    name    rating
1        Tom      B
2        Tom      A
3        Ken      C
4        Lily     A
5        Lily     A
6        Lily     B

ожидаемый результат

name    rating  values_count
Tom        A        1
           B        1
Ken        C        1
Lily       A        2
           B        1

мой подходне работает, пожалуйста, сообщите

df.groupby('name')['rating'].values_count()

1 Ответ

0 голосов
/ 22 сентября 2018

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

df.groupby(['name','rating']).size()

name  rating
Ken   C         1
Lily  A         2
      B         1
Tom   A         1
      B         1
dtype: int64

Или, чтобы вернуть его в качестве кадра данных, используйте:

df.groupby(['name','rating']).count()

             Ckey
name rating      
Ken  C          1
Lily A          2
     B          1
Tom  A          1
     B          1

В качестве альтернативы, ваш метод работает, но используйте value_counts() вместо values_count()(просто опечатка, наверное):

df.groupby('name')['rating'].value_counts()

name  rating
Ken   C         1
Lily  A         2
      B         1
Tom   A         1
      B         1
Name: rating, dtype: int64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...