按每个客户的第一笔订单过滤数据框

时间:2019-12-03 18:35:58

标签: python pandas datetime pandas-groupby

我希望获得一些帮助,以在Python中使用Pandas解决以下问题。

我有一个有关客户交易的数据框-随机排列,其中包含以下几列以及数据类型:

  • user_id 对象;
  • transaction_date datetime64 [ns] ;
  • account_creation_date datetime64 [ns] ;
  • transaction_id 对象;

我需要找到一个数据框,其中包含每个客户的所有第一个(按时间顺序)交易。最终数据框应包含与原始数据框相同的列。

到目前为止,我已经尝试使用一些“分组依据”以及聚合函数,但是我似乎无法按时间顺序获得第一个事务,而不是出现顺序中的第一个事务。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这将使您获得每个客户的最早观察结果:

df_first = df.sort_values('transaction_date').groupby('user_id').head(1)