如何用Pandas统计不同天数记录数对应的用户数量?
统计不同天数记录数的用户数量
测试数据集
df=pd.DataFrame({'user':['John','Steve','Steve','Steve','Jane','Jane','Jane','Jane','Alice','Alice','Alice'], 'days':[1,1,2,3,1,2,3,4,1,2,3]})
原始数据
user days John 1 Steve 1 Steve 2 Steve 3 Jane 1 Jane 2 Jane 3 Jane 4 Alice 1 Alice 2 Alice 3
需求
统计各天数记录数对应的用户数量,期望输出:
user days_count 1 1 3 2 4 1
解决代码
步骤1:统计每个用户的天数记录数
按user分组,计算每个用户的days条目数:
user_day_counts = df.groupby('user')['days'].count()
执行后得到:
user Alice 3 Jane 4 John 1 Steve 3 Name: days, dtype: int64
步骤2:统计各记录数对应的用户数量
对上述结果按数值分组计数,再调整列名匹配期望输出:
result = user_day_counts.value_counts().reset_index() result.columns = ['days_count', 'user'] # 按记录数排序(可选) result = result.sort_values('days_count').reset_index(drop=True)
最终输出结果:
days_count user 0 1 1 1 3 2 2 4 1
内容的提问来源于stack exchange,提问作者josepmaria
相关产品推荐
相关产品推荐

