что делает эта группа панд по заявлению? - PullRequest
0 голосов
/ 17 октября 2018

Я следую учебному пособию о том, как построить систему рекомендаций, и натолкнулся на эту строку

users_interactions_count_df = interactions_df.groupby(['personId', 'contentId']).size().groupby('personId').size()

Первая группа, по которой я считаю, сначала группирует данные в соответствии с personID, затем contentID затем показывает их размер, но недействительно понимаешь, что будет делать следующий groupby?

Источник: Сборка системы рекомендаций в python

1 Ответ

0 голосов
/ 17 октября 2018

Проверьте этот пример данных:

interactions_df = pd.DataFrame({
         'personId':list('XXYYWZWZ'),
         'contentId':list('aaaabbaa')
})

print (interactions_df)
  personId contentId
0        X         a
1        X         a
2        Y         a
3        Y         a
4        W         b
5        Z         b
6        W         a
7        Z         a

Сначала получите счетчик по столбцам personId и contentId:

print (interactions_df.groupby(['personId', 'contentId']).size())
personId  contentId
W         a            1
          b            1
X         a            2
Y         a            2
Z         a            1
          b            1
dtype: int64

А затем подсчитайте по первому уровню MultiIndex созданпо personId столбец:

print (interactions_df.groupby(['personId', 'contentId']).size().groupby('personId').size())
personId
W    2
X    1
Y    1
Z    2
dtype: int64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...