Как отсортировать только DatetimeIndex? - PullRequest
0 голосов
/ 26 мая 2020

У меня есть DatetimeIndex, как это.

DatetimeIndex(['2015-04-29 00:00:00', '2016-02-22 16:00:00',
               '2016-02-12 04:00:00', '2016-02-16 04:00:00',
               '2016-02-09 12:00:00', '2016-02-11 07:00:00',
               '2015-08-06 00:00:00', '2014-10-31 00:00:00',
               '2014-11-14 00:00:00', '2015-09-24 00:00:00',
               ...
               '2015-12-30 00:00:00', '2015-11-30 00:00:00',
               '2016-02-19 20:00:00', '2014-11-13 00:00:00',
               '2014-12-15 00:00:00', '2015-06-16 00:00:00',
               '2015-12-31 00:00:00', '2015-01-09 00:00:00',
               '2015-11-25 00:00:00', '2015-03-12 00:00:00'],
              dtype='datetime64[ns]', length=604, freq=None)

и (более длинный) Dataframe, например:

Df: 
                          Val       
Time                                                          
2014-10-10 00:00:00       ...  
2014-10-13 00:00:00       ...
2014-10-14 00:00:00       ...  
2014-10-15 00:00:00       ...
2014-10-16 00:00:00       ...  
                      ...       ...  ...            ...            ...
2016-02-23 16:00:00       ...
2016-02-23 17:00:00       ...   
2016-02-23 18:00:00       ... 
2016-02-23 19:00:00       ...   
2016-02-23 20:00:00       ...

Как я могу получить Dataframe только с теми строками, которые расположены по этим индексам?

1 Ответ

1 голос
/ 26 мая 2020

Если возможно, некоторые значения не совпадают, используйте Index.isin в boolean indexing:

df1 = df[df.index.isin(idx)]

Или Index.intersection с выбрать по DataFrame.loc:

df1 = df.loc[df.index.intersection(idx)]

Если все значения совпадают, можно упростить ответ, выбрав только loc, но это не удалось в новых версиях pandas, если хотя бы одно значение не совпадает:

df2 = df.loc[idx]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...