Reputation: 5071
I have a Pandas dataframe with the following datetime index:
DatetimeIndex(['2020-01-02', '2020-01-03', '2020-01-06', '2020-01-07',
'2020-01-08', '2020-01-09', '2020-01-10', '2020-01-13',
'2020-01-14', '2020-01-15',
...
'2020-01-17', '2020-01-21', '2020-01-22', '2020-01-23',
'2020-01-24', '2020-01-27', '2020-01-28', '2020-01-29',
'2020-01-30', '2020-01-31'],
dtype='datetime64[ns]', name='Date', length=49098, freq=None)
I want to get the rows which intersect with the following datetime index:
DatetimeIndex(['2020-01-02', '2020-01-03', '2020-01-06', '2020-01-07',
'2020-01-08', '2020-01-09', '2020-01-10'],
dtype='datetime64[ns]', name='Date', freq=None)
What is the most natural (aka "Pythonic") way to do it?
Upvotes: 3
Views: 1044
Reputation: 862801
Use Index.intersection
:
idx = idx1.intersection(idx2)
Or, if the indexes have not been previously defined:
idx = df1.index.intersection(df2.index)
Upvotes: 5