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