Почему я не могу индексировать строку по индексу datetime в pandas?

#pandas #datetimeindex

#pandas #datetimeindex

Вопрос:

Кажется, я не могу индексировать строки, используя индекс datetime в pandas. Информация в моем фрейме данных показывает, что индекс равен datetimeindex:

 <class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 223 entries, 2013-10-29 to 2017-05-29
Data columns (total 6 columns):
Unnamed: 0    223 non-null float64
company       223 non-null object
date          223 non-null object
date_conv     223 non-null object
text          223 non-null object
title         223 non-null object
dtypes: float64(1), object(5)
memory usage: 17.2  KB
  

Но когда я делаю это, возвращается «ошибка ключа»

 df['2017-02-04']
  

Должен ли я указывать имя серии индексов как «index», чтобы это работало? Хотя мой df использует datetimeindex, имя столбца индекса не ‘index’, а ‘date_conv’.

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

1. используйте df.loc[‘2017-02-04’]

2. @run-out Ок, это сработало! Спасибо

Ответ №1:

В вашем примере '2017-02-04' это строка. Вы должны ссылаться на строку по datetime:

 df.loc[datetime.datetime.strptime('2017-2-4', '%Y-%m-%d'),:]
  

Ответ №2:

Вы можете использовать строку для адреса строки во фрейме данных, но вам нужно сделать это с помощью свойства loc:

 df_row = df.loc['2017-02-04']