Pandas:计算首次购买金额

时间:2021-05-01 21:50:53

标签: python pandas select pandas-groupby calculated-columns

我需要计算每个客户的首次购买金额。这是我的代码:

ticket.groupby(['user_reference_id','total_amount']).reference_date.min().reset_index()``

我有这个结果:

user_reference_id total_amount reference_date*

    159                  12.77       2019-06-17

    159                  19.73       2019-06-17

    159                  21.55       2019-06-18

    159                  49.15       2019-06-16

    159                  49.66       2019-06-14

enter image description here

我需要将它按 user_reference_id 与最小 reference_date(客户购买的第一天)和相应的 total_amount 分组。 在这种情况下,我需要下一个输出:reference_date 2019-06-14、user_reference_id 159 和 total_amount 49.66

1 个答案:

答案 0 :(得分:0)

一种选择是:

第 1 步:按 ID 和日期排序

df=df.sort_values(['user_reference_id', 'reference_date'], ascending=True)

第 2 步: df 排序后,使用 groupby.agg 函数获取第一个值。

df_result=df.groupby('user_reference_id',as_index=False).agg({'reference_date':'first', 'total_amount':'first'})