Як вказати формат у pandas.to_datetime


Ви можете використовувати функцію pandas.to_datetime() , щоб перетворити рядковий стовпець у стовпець datetime у pandas DataFrame.

Під час використання цієї функції ви можете використовувати аргумент формату , щоб указати формат вашої дати, щоб уникнути помилок під час її перетворення з рядка на дату й час.

Ця функція використовує такий базовий синтаксис:

 df[' datetime '] = pd. to_datetime (df[' my_date_column '], format=' %m%d%Y %H:%M:%S '])

Ось найпоширеніші директиви, які ви можете надати аргументу format :

  • %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)

Щоб отримати повний список інструкцій, перегляньте цю сторінку .

У наступному прикладі показано, як використовувати аргумент format у функції to_datetime() у різних сценаріях.

Приклад: укажіть формат у pandas.to_datetime

Припустімо, що ми маємо такий фрейм даних 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() , щоб перетворити цей стовпець на 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() не розпізнає формат дати й часу, у якому наразі міститься стовпець дати .

Ми також можемо використовувати аргумент format , щоб вказати формат стовпця:

 #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
Як розрахувати різницю між двома датами в пандах

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *