在熊猫数据框中查找最后交易日期

时间:2019-09-06 02:13:56

标签: python pandas

我有一个具有customer_idorder_idTransaction_Date的数据框。我想为给定的客户查找上次交易日期是什么。

预期输出将具有以下内容:customer_idorder_idTransaction_Datelast_transaction_date

Pandas dataframe

2 个答案:

答案 0 :(得分:0)

您可以将groupby与transform,max或min结合使用:

数据

d = {'customer_id':['customer1','customer2','customer1'],'order_id':[1,2,3],'Transaction_Date':[pd.to_datetime('2019-09-05'),pd.to_datetime('2019-09-06'),pd.to_datetime('2019-09-07')]}
df = pd.DataFrame(data=d)
df
    customer_id order_id    Transaction_Date
0   customer1   1           2019-09-05
1   customer2   2           2019-09-06
2   customer1   3           2019-09-07

代码

df['last_date'] = df.groupby('customer_id')['Transaction_Date'].transform('max')

结果

    customer_id order_id    Transaction_Date    last_date
0   customer1   1           2019-09-05          2019-09-07
1   customer2   2           2019-09-06          2019-09-06
2   customer1   3           2019-09-07          2019-09-07

答案 1 :(得分:0)

首先可以按照customer_idtransaction date的升序对数据进行排序

df = df.sort_values(['customer_id','transaction_date'],ascending = [True, True])

然后使用移位功能

df['last_transaction_date'] = df.groupby('account_id')['transaction_date'].shift(1)

这将为您提供每一行的前一个交易日期,如果它是第一次交易,则为 null。