Работа с временными рядами данных

PythonPythonBeginner
Практиковаться сейчас

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

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии мы проведем вас по обработке временных рядов с использованием пакета Python Pandas. В рамках этого урока мы будем работать с данными о качестве воздуха. Вы научитесь преобразовывать строки в объекты datetime, выполнять операции с этими объектами datetime, ресэмплировать временной ряд на другую частоту и многое другое.

Советы по работе с ВМ

После запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку Notebook и приступить к практике с использованием Jupyter Notebook.

Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook полностью загрузится. Проверка операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если вы столкнетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.

Это Guided Lab, который предоставляет пошаговые инструкции, чтобы помочь вам учиться и практиковаться. Внимательно следуйте инструкциям, чтобы выполнить каждый шаг и получить практический опыт. Исторические данные показывают, что это лабораторная работа уровня начальный с процентом завершения 94%. Он получил 94% положительных отзывов от учащихся.

Импортируем необходимые библиотеки и загружаем данные

Сначала нам нужно импортировать необходимые библиотеки Python и загрузить данные о качестве воздуха. Данные будут прочитаны в DataFrame библиотеки pandas, который представляет собой двухмерную структуру данных с метками.

## import necessary libraries
import pandas as pd
import matplotlib.pyplot as plt

## load the air quality data
air_quality = pd.read_csv("data/air_quality_no2_long.csv")

## rename the "date.utc" column to "datetime"
air_quality = air_quality.rename(columns={"date.utc": "datetime"})

Преобразуем строки в объекты datetime

Даты в столбце "datetime" в настоящее время представлены в виде строк. Мы хотим преобразовать их в объекты datetime для более удобной обработки.

## convert "datetime" column to datetime objects
air_quality["datetime"] = pd.to_datetime(air_quality["datetime"])

Добавляем новый столбец с месяцем измерения

Теперь мы хотим добавить новый столбец в наш DataFrame, содержащий только месяц каждого измерения. Это можно сделать с использованием доступатора dt.

## add a new column for the month of each measurement
air_quality["month"] = air_quality["datetime"].dt.month

Вычисляем среднюю концентрацию NO2 для каждого дня недели

Теперь мы можем вычислить среднюю концентрацию NO2 для каждого дня недели в каждом месте измерения. Это можно сделать с использованием метода groupby.

## calculate the average NO2 concentration for each day of the week
average_NO2 = air_quality.groupby([air_quality["datetime"].dt.weekday, "location"])["value"].mean()

Построим график средних значений NO2 для каждого часа дня

Мы также можем построить график средних значений NO2 для каждого часа дня. Это можно сделать с использованием метода plot.

## plot the average NO2 values for each hour of the day
fig, axs = plt.subplots(figsize=(12, 4))
air_quality.groupby(air_quality["datetime"].dt.hour)["value"].mean().plot(kind='bar', rot=0, ax=axs)
plt.xlabel("Hour of the day")
plt.ylabel("$NO_2 (µg/m^3)$")

Переиндексируем временные ряды данных

Метод resample - это мощный способ изменения частоты временных рядов данных. Здесь мы агрегируем текущие данные по часам в месячные максимумы для каждого пункта измерения.

## By pivoting the data, the datetime information became the index of the table.
no_2 = air_quality.pivot(index="datetime", columns="location", values="value")
no_2.head()

## Create a plot of the values in the different stations from the 20th of May till the end of 21st of May
no_2["2019-05-20":"2019-05-21"].plot()

## resample time series data
monthly_max = no_2.resample("M").max()
monthly_max

Резюме

В этом практическом занятии мы научились обрабатывать временные ряды данных в Python с использованием библиотеки pandas. Мы загрузили данные о качестве воздуха, преобразовали строки дат в объекты datetime, вычислили среднюю концентрацию NO2 для каждого дня недели, построили график средних значений NO2 для каждого часа дня и переиндексировали временные ряды данных с использованием другой частоты.