Индексирование кадра данных pandas с индексом datetime.date приводит к KeyErrorPython

Программы на Python
Ответить
Anonymous
 Индексирование кадра данных pandas с индексом datetime.date приводит к KeyError

Сообщение Anonymous »

Я извлекаю некоторые данные из базы данных MySQL. Эти данные содержат дату (не дату и время) в одном столбце и некоторые другие случайные данные в других столбцах. Допустим, dtf — это мой фрейм данных. Индекса пока нет, поэтому я его установил

Код: Выделить всё

dtf.set_index('date', inplace=True)
Теперь мне хотелось бы получить данные за определенную дату, поэтому я пишу, например:

Код: Выделить всё

dtf.loc['2000-01-03']
или просто

Код: Выделить всё

dtf['2000-01-03']
Это выдает ошибку KeyError:

Код: Выделить всё

KeyError: '2000-01-03'
Но я знаю, что оно там; dtf.head() показывает мне это.

Поэтому я взглянул на тип индекса первой строки:

Код: Выделить всё

type(dtf.index[0])
и он говорит мне: datetime.date. Все хорошо. Теперь, если я просто наберу

Код: Выделить всё

dtf.index
вывод:

Код: Выделить всё

Index([2000-01-03, 2000-01-04, 2000-01-05, 2000-01-06, 2000-01-07, 2000-01-10,
2000-01-11, 2000-01-12, 2000-01-13, 2000-01-14,
...
2015-09-09, 2015-09-10, 2015-09-11, 2015-09-14, 2015-09-15, 2015-09-16,
2015-09-17, 2015-09-18, 2015-09-21, 2015-09-22],
dtype='object', name='date', length=2763)
Меня немного смущает dtype='object'. Разве это не должно читаться как datetime.date?
Если я использую datetime в своей таблице mysql вместо date, все работает как шарм. Это ошибка или особенность? Мне бы очень хотелось использовать datetime.date, потому что он лучше всего описывает мои данные.
Моя версия pandas — 0.17.0

Я использую Python 3.5.0

Моя операционная система — Arch Linux

Подробнее здесь: https://stackoverflow.com/questions/332 ... o-keyerror
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»