Использование:
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