Pandas: как преобразовать индекс в дату/время
Вы можете использовать следующий синтаксис для преобразования индексного столбца DataFrame pandas в формат даты и времени:
df. index = pd. to_datetime ( df.index )
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: преобразование столбца индекса в Datetime в Pandas
Предположим, у нас есть следующий DataFrame pandas, содержащий информацию о продажах товаров в магазине:
import pandas as pd #createDataFrame df = pd. DataFrame ({' time ': ['4-15-2022 10:15', '5-19-2022 7:14', '8-01-2022 1:14', '6-14-2022 9:45', '10-24-2022 2:58', '12-13-2022 11:03'], ' product ': ['A', 'B', 'C', 'D', 'E', 'F'], ' sales ': [12, 25, 23, 18, 14, 10]}) #set 'time' column as index df = df. set_index (' time ') #view DataFrame print (df) product sales time 4-15-2022 10:15 A 12 5-19-2022 7:14 B 25 8-01-2022 1:14 C 23 6-14-2022 9:45 D 18 10-24-2022 2:58 E 14 12-13-2022 11:03 F 10
Теперь предположим, что мы пытаемся создать новый столбец, содержащий время в столбце индекса:
#attempt to create new column that contains hour of index column
df[' hour '] = df. index . hour
AttributeError: 'Index' object has no attribute 'hour'
Мы получаем сообщение об ошибке, поскольку индексный столбец в настоящее время не имеет формата даты и времени и, следовательно, не содержит атрибута «время».
Чтобы избежать этой ошибки, мы можем использовать функцию pandas to_datetime() для преобразования столбца индекса в формат даты и времени:
#convert index column to datetime format
df. index = pd. to_datetime ( df.index )
#create new column that contains hour of index column
df[' hour '] = df. index . hour
#view updated DataFrame
print (df)
product sales hour
time
2022-04-15 10:15:00 At 12 10
2022-05-19 07:14:00 B 25 7
2022-08-01 01:14:00 C 23 1
2022-06-14 09:45:00 D 18 9
2022-10-24 02:58:00 E 14 2
2022-12-13 11:03:00 F 10 11
Используя функцию to_datetime(), мы можем преобразовать индексный столбец в формат даты и времени.
Итак, мы можем успешно создать новый столбец с именем time , который содержит время в часах в столбце индекса, не получая при этом никаких ошибок.
Примечание . Полную документацию по функции pandas to_datetime() можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в pandas:
Как создать диапазон дат в Pandas
Как преобразовать временную метку в дату/время в Pandas
Как рассчитать разницу между двумя датами в пандах