Как указать формат в 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
Как рассчитать разницу между двумя датами в пандах

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *