我需要计算每个客户的首次购买金额。这是我的代码:
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
我需要将它按 user_reference_id 与最小 reference_date(客户购买的第一天)和相应的 total_amount 分组。 在这种情况下,我需要下一个输出:reference_date 2019-06-14、user_reference_id 159 和 total_amount 49.66
答案 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'})