Введение
Этот практикум проведет вас через процесс работы с временными интервалами в Python с использованием библиотеки pandas. Временной интервал представляет длительность или разницу во времени. Мы рассмотрим различные способы создания, манипулирования и работы с временными интервалами.
Советы по работе с ВМ
После запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку Notebook и получить доступ к Jupyter Notebook для практики.
Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.
Если вы столкнетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.
Импортируем необходимые библиотеки
Сначала нам нужно импортировать необходимые библиотеки. В этом случае мы будем использовать pandas и numpy.
## Import the required libraries
import pandas as pd
import numpy as np
import datetime
Создаем временной интервал
Создадим объект временного интервала, который представляет длительность или разницу во времени.
## Construct a timedelta object
pd.Timedelta("1 days 2 hours")
Преобразование в временной интервал
Вы можете преобразовать скаляр, массив, список или серию из распознаваемого формата временного интервала в тип временного интервала.
## Convert a string to a timedelta
pd.to_timedelta("1 days 06:05:01.00003")
Выполняем операции
Можно выполнять математические операции с временными интервалами.
## Subtract two timedeltas
s = pd.Series(pd.date_range("2012-1-1", periods=3, freq="D"))
s - s.max()
Доступ к атрибутам
Вы можете напрямую получить доступ к различным компонентам временного интервала.
## Access the days attribute of a timedelta
tds = pd.Timedelta("31 days 5 min 3 sec")
tds.days
Преобразование в формат ISO 8601 длительности
Вы можете преобразовать временной интервал в строку формата ISO 8601 длительности.
## Convert a timedelta to an ISO 8601 Duration string
pd.Timedelta(days=6, minutes=50, seconds=3, milliseconds=10, microseconds=10, nanoseconds=12).isoformat()
Создание индекса временного интервала
Вы можете сгенерировать индекс с временными интервалами.
## Generate a timedelta index
pd.TimedeltaIndex(["1 days", "1 days, 00:00:05", np.timedelta64(2, "D"), datetime.timedelta(days=2, seconds=2)])
Использование индекса временного интервала
Вы можете использовать индекс временного интервала в качестве индекса объектов pandas.
## Use the timedelta index as the index of a pandas series
s = pd.Series(np.arange(100), index=pd.timedelta_range("1 days", periods=100, freq="h"))
Выполнять операции с индексом временного интервала
Вы можете выполнять операции с индексом временного интервала.
## Add a timedelta index to a datetime index
tdi = pd.TimedeltaIndex(["1 days", pd.NaT, "2 days"])
dti = pd.date_range("20130101", periods=3)
(dti + tdi).to_list()
Переиндексировать индекс временного интервала
Вы можете переиндексировать данные с использованием индекса временного интервала.
## Resample data with a timedelta index
s.resample("D").mean()
Резюме
В этом практическом занятии мы узнали, как работать с временными интервалами в Python с использованием библиотеки pandas. Мы рассмотрели, как конструировать временной интервал, преобразовывать в временной интервал, выполнять операции, получать доступ к атрибутам, преобразовывать в формат ISO 8601 Duration, создавать индекс временного интервала, использовать индекс временного интервала, выполнять операции с индексом временного интервала и переиндексировать индекс временного интервала. С этими навыками вы сможете эффективно обрабатывать и манипулировать данными, основанными на времени, в своих будущих задачах анализа данных.