В Pandas, как мне удалить строки на основе индекса даты, не находящегося в диапазоне дат?

#python #pandas

Вопрос:

У меня есть некоторые данные в фрейме данных с индексом даты:

               SP500_movement  SP500_movement_5days  SP500_movement_21days
Date                                                                   
2021-03-08             NaN                   NaN                    NaN
2021-03-09        0.013957                   NaN                    NaN
2021-03-10        0.005994                   NaN                    NaN
 

Как удалить все строки, которые не входят в указанный диапазон дат? Это то, что я пробовал.

         data = data.drop(data.loc[data.index < startDate])
        data = data.drop(data.loc[data.index > endDate])
 

Диапазон дат находится в начальной и конечной дате, которые оба представлены в формате даты и времени.

Это ошибка, которую я получаю:

 KeyError: "['SP500_movement' 'SP500_movement_5days' 'SP500_movement_21days'] not found in axis"
 

Ответ №1:

Давайте сделаем это

 data = data.loc[(data.index >= startDate) amp; (data.index <= endDate)])
 

Или если вы указываете формат времени данных

 data = data.loc[startDate : endDate,:]
 

Комментарии:

1. Второй тоже работал на меня, у тебя репутация 255 тысяч, ты просто сумасшедший.

2. @BillSoftwareEngineer просто проведите немного ночи и помогите сообществу ~