dubbbdan
dubbbdan

Reputation: 2720

Filter Data Frame by dates in another dataframe

I have a 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

And another table1:

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

I need to filter query2 to only include TripDates in table1. The resulting filtered table would look like:

    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

Upvotes: 3

Views: 935

Answers (1)

Andy Hayden
Andy Hayden

Reputation: 375375

You're looking for 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

By default this merges on shared columns (in this case only TripDate, but you can specify):

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

Upvotes: 6

Related Questions