熊猫:按不同日期过滤每个客户

时间:2018-08-22 21:26:43

标签: python pandas filter

我有不同客户的交易。

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来自每个客户开始使用该应用程序之前的。

谢谢

2 个答案:

答案 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)

  1. 确保数据和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]

应该这样做