Как срезать индекс на основе datetime64

#python #pandas #dataframe #datetime #jupyter-notebook

Вопрос:

Я почти уверен, что это простой вопрос, но я просто работаю не так, как ожидал. Учитывая следующий фрейм данных:

 request_date   deal_id  
20180428       00812342
20180428       12341234
20180428       43213412
20180428       12341234
20180428       34323432
... ...
20210506       16674900
 

Я хочу просто разрезать одну четверть, скажем, все записи за 2019-03-01-2019-03-31, а затем создать гистограмму.

Я попытался разрезать его с помощью строк или .loc, но ни один из способов, похоже, не работает..

 df_date['20190301':'20190305']

KeyError: "Cannot get left slice bound for non-unique label: '20190301'"
 

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

1. Какова ваша версия панды? Для меня хорошо работать в панд 1.2.3

Ответ №1:

Пожалуйста, проверьте, не пропущены ли какие-либо из приведенных ниже действий.

 df['request_date'] = pd.to_datetime(df.request_date, format='%Y%m%d')
df = df.set_index('request_date')
df.loc['20180428':'20180429'] ## preferable
df['20180428':'20180429']
 

Выход

             deal_id
request_date    
2018-04-28  812342
2018-04-28  12341234
2018-04-28  43213412
2018-04-28  12341234
2018-04-28  34323432
 

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

1. Отлично, всего наилучшего!