Pandas:计算首次购买金额

Pandas: calculate first purchase amount

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

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 步: 按 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'})