Работа с временными интервалами

Beginner

This tutorial is from open-source community. Access the source code

Введение

Этот практикум проведет вас через процесс работы с временными интервалами в 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, создавать индекс временного интервала, использовать индекс временного интервала, выполнять операции с индексом временного интервала и переиндексировать индекс временного интервала. С этими навыками вы сможете эффективно обрабатывать и манипулировать данными, основанными на времени, в своих будущих задачах анализа данных.