user8270077
user8270077

Reputation: 5071

How to get the rows in Pandas dataframe with datetime index using another datetime index?

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

Answers (1)

jezrael
jezrael

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

Related Questions