这些熊猫按语句分组是做什么的?

时间:2018-10-17 08:14:28

标签: python pandas group-by

我正在关注有关如何构建推荐系统的教程,并走上了这条线

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

我相信第一个groupby首先根据personID对数据进行分组,然后contentID显示其大小,但并不能真正理解下一个groupby会做什么?

来源:Building recommendation system in python

1 个答案:

答案 0 :(得分:1)

检查此样本数据:

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

每列personIdcontentId的首次获取计数:

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