【问题标题】:what does these pandas group by statement does?这些 pandas 的 group by 语句是做什么的?
【发布时间】:2019-03-21 20:34:59
【问题描述】:
我正在关注如何构建推荐系统的教程并遇到了这一行
users_interactions_count_df = interactions_df.groupby(['personId', 'contentId']).size().groupby('personId').size()
第一个 groupby 我相信首先根据 personID 对数据进行分组,然后 contentID 然后显示它的大小但真的不明白下一个 groupby 会做什么?
来源:Building recommendation system in python
【问题讨论】:
标签:
python
pandas
group-by
【解决方案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
首先获取每列 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
然后按由personId 列创建的MultiIndex 的第一级计数:
print (interactions_df.groupby(['personId', 'contentId']).size().groupby('personId').size())
personId
W 2
X 1
Y 1
Z 2
dtype: int64