【发布时间】:2018-10-18 23:17:11
【问题描述】:
我有以下数据
user_id session_id youtube_id
1 1 2342
1 1 3523
1 2 3325
2 1 3423
2 1 2352
2 1 3333
2 2 2351
2 2 9876
2 3 2388
目标是按user_id 分组并计算每个用户total_sessions、total_views 和average views per session。
user_id, total_sessions, total_views, average_view_per_session
1, 2, 3, 1.5
2, 3, 6, 2
result_df['avg'] = df.groupby('user_id').agg({
'session_id':lambda x : x.nunique(),
'youtube_id': 'count'}).apply(lambda x : x['total_views']/x['total_sessions']
上面的两个问题:
- 生成的列仍命名为
session_id和youtube_id,尽管它们是聚合 - 如何进行
division获取average_view_per_session?
上述方法给出了一个关键错误,这可能是由于将原始列名用于聚合列。
【问题讨论】:
-
所以你想聚合得到各自的总数,然后得到它们的比率来得到平均值,即“总结”你的总结。我试图改写以使这一点更清楚。
标签: python pandas aggregate pandas-groupby summary