这是我正在使用的 df 的前 10 行: id user_id session_date mb_used0 1000_13 1000 2018-12-29 89.861 1000_204 1000 2018-12-31 0.002 1000_379 1000 2018-12-28 660.403 1000_413 1000 2018-12-26 270.994 1000_442 1000 2018-12-27 880.225 1001_0 1001 2018-08-24 284.686 1001_3 1001 2018-12-09 656.047 1001_4 1001 2018-11-04 16.978 1001_10 1001 2018-11-27 135.189 1001_15 1001 2018-12-13 761.92我的问题是:如何找到每月每个 user_id 的 mb_used 总量?这意味着我必须首先隔离每个 user_id,找出他们在同一个月内使用了多少行数据,然后将它们相加以获得每个用户的“每月使用的数据”。我可以使用数据透视表来查找每个用户使用此代码使用的总数据: internet_per_user = pd.pivot_table(internet, index = 'user_id', columns='mb_used',aggfunc='sum') 但我无法合并每月方面。对于上面发布的 10 行,我希望输出看起来像这样(手工计算):user_id Month mb_used1000 12 1901.471001 08 284.681001 12 1417.961001 11 152.15
1 回答
慕田峪4524236
TA贡献1875条经验 获得超5个赞
您需要对每个月的用户 ID 进行分组并计算总和。您可以使用:
df['session_date'] = pd.to_datetime(df['session_date'], errors='coerce')
(df.groupby(['user_id', df['session_date'].dt.month])['mb_used']
.sum()
.reset_index())
user_id session_date mb_used
0 1000 12 1901.47
1 1001 8 284.68
2 1001 11 152.15
3 1001 12 1417.96
添加回答
举报
0/150
提交
取消