按日期在另一个数据框中过滤数据框

时间:2016-06-02 20:24:16

标签: python pandas filter dataframe

我有一个数据框query2

    Site   TripDate       Volume
0   003l 1990-06-10  2202.571850
1   003l 1991-07-26  2543.566201
2   003l 1991-11-01  1702.228651
3   003l 1992-10-15  2753.163510
4   003l 1993-04-01  2550.538237
5   003l 1993-10-08  2241.329021

另一个table1

     TripDate  Count
0  1990-06-10     35
1  1991-07-26     35
2  1992-10-15     34
3  1993-10-08     35

我需要过滤query2以仅在TripDates中包含table1。生成的过滤表格如下所示:

    Site   TripDate       Volume
0   003l 1990-06-10  2202.571850
1   003l 1991-07-26  2543.566201
2   003l 1992-10-15  2753.163510
3   003l 1993-10-08  2241.329021

1 个答案:

答案 0 :(得分:6)

您正在寻找merge

In [11]: t1.merge(q2)
Out[11]:
     TripDate  Count  Site       Volume
0  1990-06-10     35  003l  2202.571850
1  1991-07-26     35  003l  2543.566201
2  1992-10-15     34  003l  2753.163510
3  1993-10-08     35  003l  2241.329021

默认情况下,这会在共享列上合并(在本例中仅为TripDate,但您可以指定):

In [12]: t1.merge(q2, on="TripDate")
Out[12]:
     TripDate  Count  Site       Volume
0  1990-06-10     35  003l  2202.571850
1  1991-07-26     35  003l  2543.566201
2  1992-10-15     34  003l  2753.163510
3  1993-10-08     35  003l  2241.329021