Уже существует вопрос с таким же названием, но я не смог найти ответ на свою проблему ... Я сравниваю время (в формате час: минуты: секунды) в столбце с установленным временем (08:00: 00) и возникли некоторые проблемы.
Я импортировал некоторые данные из Excel в кадр данных pandas. Некоторые из столбцов содержат времена. Их формат в кадре данных - «объект».
Я начал с создания нового фрейма данных, содержащего только те данные, в которых время в столбце «Время начала» больше, чем 08:00:00, например:
OSR_start_OH = pd.DataFrame()
OSR_start_OH = df[df['Starttime'] >= datetime.time(8,0,0)]
Отлично работает.
Но затем я пытаюсь сделать то же самое с другим столбцом «Finishtime»:
OSR_finish_OH = pd.DataFrame()
OSR_finish_OH = df[df['Finishtime'] >= datetime.time(8,0,0)]
И я получаю сообщение об ошибке '>=' not supported between instances of 'datetime.datetime' and 'datetime.time'
Я не понимаю, потому что данные в столбце «Finishtime» имеют тот же формат, что и в «Starttime». На самом деле это в datetime.time, а не в datetime.datetime:
Выход для: df['Finishtime'][3]
- это: datetime.time(20, 0)
Кроме того, я могу сравнить различные ячейки в столбце «Finishtime», используя «> =»:
Выход для: df['Finishtime'][3] >= df['Finishtime'][10]
это: True
Редактировать: это некоторые данные, показывающие дату в столбце «Время окончания» для 00:00:00 раз.
Startdate Starttime Finishdate Finishtime
350 2018-06-06 12:00:00 2018-06-06 15:00:00
351 2018-06-06 15:00:00 2018-06-06 19:18:17
352 2018-06-05 00:00:00 2018-06-06 14:47:54
353 2018-06-05 22:00:00 2018-06-05 1900-01-01 00:00:00
354 2018-06-05 00:00:00 2018-06-06 15:19:21
355 2018-06-05 22:00:00 2018-06-05 1900-01-01 00:00:00
356 2018-06-06 02:00:00 2018-06-06 14:48:45
357 2018-06-06 21:48:16 2018-06-06 02:00:00
Редактировать 2: это то, что я получаю после попытки
df['Finishtime'].apply(lambda x: datetime.time(x.hour, x.minute, x.second))
Startdate Starttime Finishdate Finishtime
350 2018-06-06 12:00:00 2018-06-06 15:00:00
351 2018-06-06 15:00:00 2018-06-06 19:18:17
352 2018-06-05 00:00:00 2018-06-06 14:47:54
353 2018-06-05 22:00:00 2018-06-05 1900-01-01 00:00:00
354 2018-06-05 00:00:00 2018-06-06 15:19:21
355 2018-06-05 22:00:00 2018-06-05 1900-01-01 00:00:00
356 2018-06-06 02:00:00 2018-06-06 14:48:45
357 2018-06-06 21:48:16 2018-06-06 02:00:00
Так же, как и выше
Любая помощь очень приветствуется, спасибо!