#python #pandas
Вопрос:
df_time = pd.DataFrame({'DOB': {0: '12FEB20210017', 1: '18AUG20210019'}}) df_time['DOB'] = pd.to_datetime(df_time.DOB,format='%d%b%Y%H:%M:%S')
Ошибка значения: данные о времени «12FEB20210017» не соответствуют формату «%d%b%Y:%H:%M:%S » (совпадение)
Я не понимаю проблемы с форматом
Комментарии:
1. Даже если я добавлю » 00 » в конце, это приведет к той же ошибке.
2. У вас нет двоеточий во входных строках, но вы говорите пандам, что в вашей входной строке есть двоеточия в полях %H:%M:%S. Попробуй:
df_time.DOB,format='%d%b%Y%H%M%S'
3. Удаление двоеточий исправило проблему. Спасибо
Ответ №1:
Формат требовал небольшого изменения.
import pandas as pd df_time = pd.DataFrame({'DOB': {0: '12FEB20210017', 1: '18AUG20210019'}}) #df_time['DOB'] = df_time['DOB'].str.lower() df_time['DOB'] = pd.to_datetime(df_time.DOB,format='%d%b%Y%H%M')
Комментарии:
1. Это тот результат, которого я жду. Спасибо
2. Проверьте, действительно ли у вас есть секунды в ваших данных. Я думаю, у тебя есть только часы и минуты. если это 12FEB20210017 0-й час и 17-я минута, используйте мой ответ. (вам не нужны %S в конце).
3. Да, в моих данных нет секунд
Ответ №2:
как упоминалось в комментариях ,сообщение об ошибке ясно, и ваш формат данных должен быть таким :
import pandas as pd df_time = pd.DataFrame({'DOB': {0: '12FEB20210017', 1: '18AUG20210019'}}) df_time['DOB'] = pd.to_datetime(df_time.DOB,format='%d%b%Y%H%M%S') df_time
выход:
gt; DOB 0 2021-02-12 00:01:07 1 2021-08-18 00:01:09