Удалить двоеточия из столбца time в pandas

#pandas #datetime

#pandas #datetime

Вопрос:

Я пытаюсь преобразовать свой столбец SampleTime из ‘%H:%M:% S’, показанный здесь, просто в ‘%H%M%S’, поэтому двоеточия удаляются. Я пытаюсь использовать этот код:

  insitu_time =  pd.to_datetime(insitu['SampleTime']).dt.strftime('%H%M%S')
  

но при получении ошибки ‘TypeError: <введите ‘datetime.time’&&t; не преобразуется в datetime’

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

1. Можете ли вы опубликовать образцы данных?

Ответ №1:

Проверьте, являются ли данные чистыми. Вот пример, когда данные намеренно создаются с пробелами.

 insitu = pd.DataFrame({'Sampletime': [' 00:30:00', '01:00:01', '01:30:00', '02:00:01 ']}) 
  

Попробуйте запустить это, чтобы увидеть, возвращает ли оно какой-либо NaT

 pd.to_datetime(insitu['Sampletime'],errors='coerce')

#0                   NaT
#1   2020-08-07 01:00:01
#2   2020-08-07 01:30:00
#3   2020-08-07 02:00:01
  

Убрать пробелы:

 insitu['Sampletime'] = insitu['Sampletime'].str.strip()
  

Также попробуйте сначала преобразовать в Timestamp:

 insitu['Sampletime'] = insitu['Sampletime'].apply(pd.Timestamp)
  

Затем:

 pd.to_datetime(insitu['Sampletime']).dt.strftime('%H%M%S')

# Result:
#0    003000
#1    010001
#2    013000
#3    020001