我有不同客户的交易。
Customer | Ticket | Date | StartDate
A 000 08-12-2017 01-01-2018
B 001 17-12-2017 01-01-2018
A 002 05-01-2018 01-01-2018
A 003 05-01-2018 01-01-2018
B 004 17-02-2018 01-01-2018
StartDate是每个客户开始使用该应用程序的时间。因此,在客户开始使用该应用程序之前,我已经进行了客户frmo的交易。每个客户都有不同的StartDate。在每个客户开始使用该应用程序之后,如何过滤交易并仅获取交易。
在此示例中,我将仅获得票证002、003和004,因为票证000和001来自每个客户开始使用该应用程序之前的。
谢谢
答案 0 :(得分:2)
您可以使用query
方法:
df.query('Date > StartDate')
或布尔索引:
df[df['Date'] > df['StartDate']]
输出:
Customer Ticket Date StartDate
2 A 2 2018-05-01 2018-01-01
3 A 3 2018-05-01 2018-01-01
4 B 4 2018-02-17 2018-01-01
答案 1 :(得分:0)
确保数据和StartDate作为日期存储:
df.info()
如果不是日期:
df.Date = pd.to_datetime(df.Date, format="%d-%m-%Y")
df.StartDate = pd.to_datetime(df.StartDate, format="%d-%m-%Y")
2:比较列:
df2 = df[df.StartDate < df.Date]
应该这样做