为了账号安全,请及时绑定邮箱和手机立即绑定

Pandas groupby 并与当前月份相加

Pandas groupby 并与当前月份相加

鸿蒙传说 2023-06-20 14:18:50
这是我正在使用的 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


查看完整回答
反对 回复 2023-06-20
  • 1 回答
  • 0 关注
  • 96 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信