T-SUM 멘토링

[T-SUM] 8주차 자료 - Pandas를 통한 시계열데이터 분석

LooanCheong 2023. 8. 10. 19:35
반응형

오늘의 내용 미리보기

본문

우선 시작에 앞서 몇 가지 설치를 해봅시다.

pip install pandas

pip install numpy

이 두 모듈을 이용해 파이썬으로 데이터 분석이 가능해집니다.

pandas는 파이썬의 데이터 분석 라이브러리입니다.
수치형 테이블과 시계열 데이터를 조작하고 운영하기 위한 데이터를 제공합니다.

numpy는 수학 및 과학 연산을 위한 파이썬 패키지입니다.
파이썬으로 수치해석, 통계 관련 기능을 구현할 때 가장 기본이 되는 모듈입니다.

우선 이 두 모듈을 사용하기에 앞서 시계열데이터에 대해서 알아봅시다.

시계열데이터일정한 시간 동안 수집 된 일련의 순차적으로 정해진 데이터 셋의 집합입니다.

되게 어려워 보이는 데 쉽게 풀어서 설명하면 무언가에 대한 데이터를 시간에 따라 나열한 데이터의 집합입니다.

다음 파일을 한 번 봅시다.

이런 식으로 일자와 이에 관련된 데이터가 모여있는 집합이라고 생각하면 됩니다.

이 데이터의 경우 Index가 일자인 Pandas의 DataFrame입니다.

그러면 본격적으로 pandas를 사용해 봅시다.

우선 pandas를 사용하기 위해선 import를 해주어야 합니다.

import pandas as pd

이런 식으로 import를 하게 되면 사용이 가능합니다.
as는 이 import 된 대상의 약칭입니다.

굳이 pandas.함수() 이런 식으로 쓰지 않고
pd.함수() 이런 식의 사용이 가능합니다.

한 번 일정한 간격의 DatatimeIndex를 생성해 볼까요?

pd.date_range('2023-08-01',periods = 5,freq = "H")

이런 식으로 date_range라는 함수를 이용해서 만들 수 있습니다.

인자로는 시작 시점, 개수, 간격 등이 있습니다.

이렇게 생성을 해보면

이런 결과를 얻을 수 있습니다.

freq를 변경하게 되면 그에 맞는 값이 나옵니다.

이번엔 일반 시계열데이터를 Pandas 시계열데이터로 변환해 봅시다.

import pandas as pd

df = pd.read_excel("파일경로")
df.dtypes

우선 기존 파일의 타입을 알아봅시다.

그리고 파일을 변환해서 알아봅시다.

import pandas as pd

df = pd.read_excel("파일경로")

df["일자"] = pd.to_datetime(df["일자"])
df.dtypes

일자에 해당하는 타입이 pandas의 datetime 형식으로 변경된 것을 알 수 있습니다.

이러한 방식으로 datetime을 변경하여 pandas를 사용할 수 있습니다.


이번에는 판다스를 이용하여 선차트를 그려봅시다.

이런 함수를 이용해서 그릴 수 있습니다.

한번 실습해 봅시다.

import pandas as pd

df = pd.read_excel("파일경로")
df.set_index('일자', inplace = True)

df.plot(y = ["SK텔레콤", "현대모비스"])

이번엔 이동 기술 통계량을 알아봅시다.

이동 기술 통계량이란 시간의 흐름에 따라 일정 기간 동안의 수치자료의 기술 통계량을 계산한 값입니다.

방금 데이터의 이동 평균을 계산해 봅시다.

import pandas as pd

df = pd.read_excel("파일경로")
df.set_index('일자', inplace = True)

df["KT_MA"] = df["KT"].rolling(20).mean()
df.dropna(axis = 0, inplace = True)

df[["KT", "KT_MA"]].plot(title = "KT and KT Moving Average", legend = True)

dropna 함수는 결측치를 제거하는 함수,
legend는 범례를 표시하는 기능입니다.
크게 상관 안 해도 됩니다.

이런 식으로 이동 평균을 계산해 봤습니다.

마지막으로 주가 API를 이용해서 주가를 받아오는 방법도 알아봅시다.

pip install yfinance

이 모듈은 증권 수집 라이브러리입니다.
증권과 관련된 다양한 기능이 있어요.

이번에는 특정 주식의 주가를 받아와 봅시다.

import yfinance as yf

SKT = yf.download('017670.KS', '2020-11-01', '2020-11-13')
SKT

이런 식으로 해당 주식의 코드와 시작일, 종료일을 정해주면 해당 주식의 주가를 받아와 줍니다.

이를 이용해 원하는 주식의 분석을 할 수 있습니다.

마지막으로 복습하기

이번 시간에는 pandas를 이용하는 기초적인 방법과
pandas를 이용해 선 차트를 그리는 방법,
그리고 마지막으로 yfinance를 이용해 주가를 받아오는 방법을 배웠습니다.

다음 시간에 만나요 안뇽.

반응형