Как указать формат в pandas.to_datetime
Вы можете использовать функцию pandas.to_datetime() для преобразования строкового столбца в столбец даты и времени в DataFrame pandas.
При использовании этой функции вы можете использовать аргумент формата , чтобы указать формат вашей даты, чтобы избежать ошибок при преобразовании ее из строки в дату и время.
Эта функция использует следующий базовый синтаксис:
df[' datetime '] = pd. to_datetime (df[' my_date_column '], format=' %m%d%Y %H:%M:%S '])
Вот наиболее распространенные директивы, которые вы можете предоставить аргументу формата :
- %m : Месяц в виде числа с нулем (01, 02,… 12).
- %d : день месяца в виде числа с нулем (01, 02,… 31).
- %y : Год со столетием в качестве номера (2020, 2021, 2022 и т. д.).
- %H : час (24-часовой формат) в виде числа, дополненного нулями (00, 01, … 23).
- %I : Время (12-часовой формат) в виде числа, дополненного нулями (01, 02, … 12).
- %p : либо до полудня, либо после полудня.
- %M : минуты в виде числа, дополненного нулями (00, 01, … 59).
- %S : секунда в виде числа, дополненного нулями (00, 01,… 59).
Полный список рекомендаций можно найти на этой странице .
В следующем примере показано, как использовать аргумент формата в функции to_datetime() в различных сценариях.
Пример: укажите формат в pandas.to_datetime.
Предположим, у нас есть следующий DataFrame pandas, который содержит информацию об общем объеме продаж, совершенных в разные даты в розничном магазине:
import pandas as pd #createDataFrame df = pd. DataFrame ({' date ': ['10012023 4:15:30', '10042023 7:16:04', '10062023 9:25:00', '10142023 15:30:50', '10152023 18:15:00'], ' sales ': [100, 140, 235, 120, 250]}) #view DataFrame print (df) dirty dates 0 10012023 4:15:30 100 1 10042023 7:16:04 140 2 10062023 9:25:00 235 3 10142023 15:30:50 120 4 10152023 18:15:00 250 #view data type of each column in DataFrame print ( df.dtypes ) date object dirty int64 dtype:object
Мы видим, что столбец даты в настоящее время является строковым столбцом (т.е. объектом).
Предположим, мы пытаемся использовать pandas.to_datetime() для преобразования этого столбца в дату и время:
#attempt to convert date column to datetime format
df[' date '] = pd. to_datetime (df[' date '])
ParserError: month must be in 1..12: 10012023 4:15:30 present at position 0
Мы получаем сообщение об ошибке, поскольку функция pandas.to_datetime() не распознает формат даты и времени, в котором в данный момент находится столбец даты .
Мы также можем использовать аргумент формата , чтобы указать формат столбца:
#convert date column to datetime format
df[' date '] = pd. to_datetime (df[' date '], format=' %m%d%Y %H:%M:%S ')
#view DataFrame
print (df)
dirty dates
0 2023-10-01 04:15:30 100
1 2023-10-04 07:16:04 140
2 2023-10-06 09:25:00 235
3 2023-10-14 15:30:50 120
4 2023-10-15 18:15:00 250
#view updated type of each column
print ( df.dtypes )
date datetime64[ns]
dirty int64
dtype:object
Мы видим, что столбец даты был успешно преобразован в столбец даты и времени, и мы не получили никаких ошибок, поскольку мы использовали аргумент формата , чтобы указать точный формат, в котором находился столбец даты .
Примечание . Полную документацию по функции pandas to_datetime() можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в pandas:
Как создать диапазон дат в Pandas
Как преобразовать временную метку в дату/время в Pandas
Как рассчитать разницу между двумя датами в пандах