시계열 데이터 처리

Beginner

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

소개

이 랩에서는 Python 패키지인 Pandas 를 사용하여 시계열 데이터를 처리하는 방법을 안내합니다. 이 튜토리얼에서는 대기 질 데이터를 사용합니다. 문자열을 datetime 객체로 변환하고, 이러한 datetime 객체에 대한 연산을 수행하며, 시계열을 다른 빈도로 리샘플링하는 방법 등을 배우게 됩니다.

VM 팁

VM 시작이 완료되면, 왼쪽 상단을 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 접근하십시오.

때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 작업의 유효성 검사는 자동화될 수 없습니다.

학습 중에 문제가 발생하면 언제든지 Labby 에게 문의하십시오. 세션 후 피드백을 제공해주시면 문제를 신속하게 해결해 드리겠습니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 94%입니다.학습자들로부터 94%의 긍정적인 리뷰율을 받았습니다.

필요한 라이브러리 가져오기 및 데이터 로드

먼저, 필요한 Python 라이브러리를 가져오고 대기 질 데이터를 로드해야 합니다. 데이터는 2 차원 레이블이 지정된 데이터 구조인 pandas DataFrame 으로 읽혀집니다.

## 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)

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

요약

이 랩에서는 pandas 라이브러리를 사용하여 Python 에서 시계열 데이터를 처리하는 방법을 배웠습니다. 대기 질 데이터를 로드하고, 날짜 문자열을 datetime 객체로 변환하고, 요일별 평균 NO2 농도를 계산하고, 하루의 각 시간대별 평균 NO2 값을 플롯하고, 시계열 데이터를 다른 빈도로 리샘플링했습니다.