Я запускаю множество фреймов данных с индексом даты и времени через функцию, в которой я нарезаю фрейм данных на основе начального и конечного периода. Хотя одна и та же функция работает нормально для многих фреймов данных, на некоторых она вызывает необъяснимую ошибку KeyError. Данные в кадрах данных идентичны с точки зрения типов данных, столбцов и форматирования. Вот пример KeyError
:
Выдержка DataFrame, которая вызывает ошибку:
>> df_boiler_temp
>> @log_date @tariff_indicator #text
2017-04-23 00:12:48.802 none 65.0
2017-04-23 00:19:00.223 none 64.0
2017-04-23 00:24:02.544 none 63.0
2017-04-23 00:29:20.766 none 62.0
2017-04-23 00:35:00.088 none 61.0
2017-04-23 00:41:00.666 none 60.0
2017-04-23 00:46:00.632 none 59.0
2017-04-23 00:53:38.935 none 58.0
2017-04-23 00:59:21.152 none 57.0
2017-04-23 01:05:59.926 none 56.0
2017-04-23 01:09:58.652 none 65.0
2017-04-23 01:11:00.651 none 66.0
2017-04-23 01:14:10.577 none 67.0
2017-04-23 01:19:58.829 none 66.0
2017-04-23 01:28:00.635 none 65.0
Код, который вызывает KeyError
df = df_boiler_temp.truncate(before=row['start'], after=row['end'])
(Как и эта строка, которая по существу идентична
df = df_boiler_temp[row['start']: row['end']]
)
Возникающее исключение:
KeyError: 1492909671481000000L
Что переводится как 2017-04-23 01:07:51.481000
в записи даты и времени.
>> row['start']
>> 2017-04-23 01:07:51.481000
>> row['end']
>> 2017-04-23 02:24:07.953000
Я не понимаю, почему усечение с этими значениями вызовет ошибку KeyError, когда поднимаемая ошибка KeyError идеально ложится между датами, присутствующими в кадре данных. Есть идеи, как я могу это решить?