This repository has been archived on 2025-06-07. You can view files and clone it, but cannot push or open issues or pull requests.
2025-05-06 21:23:04 +09:00

36 lines
1.3 KiB
Python

# pandas는 데이터를 표 형태(DataFrame)로 다루기 위한 라이브러리입니다
import pandas as pd
# 이 함수는 Polygon API에서 받아온 주식 데이터를 CDS(Complete Data Set)로 정리합니다
def clean_ohlcv(raw_data: list) -> pd.DataFrame:
# 입력된 raw_data (딕셔너리 리스트)를 pandas의 DataFrame으로 변환
df = pd.DataFrame(raw_data)
# 't' 컬럼은 timestamp인데 밀리초 단위이므로 datetime 형식으로 변환
df['t'] = pd.to_datetime(df['t'], unit='ms')
# 컬럼 이름을 사람이 이해하기 쉬운 형태로 바꿉니다
df.rename(columns={
't': 'timestamp', # 날짜 및 시간
'o': 'open', # 시가
'h': 'high', # 고가
'l': 'low', # 저가
'c': 'close', # 종가
'v': 'volume' # 거래량
}, inplace=True)
# 중복된 행이 있다면 제거
df.drop_duplicates(inplace=True)
# 결측값(NaN)이 포함된 행이 있다면 제거
df.dropna(inplace=True)
# 날짜(timestamp)를 기준으로 오름차순 정렬
df.sort_values(by='timestamp', inplace=True)
# 인덱스를 다시 0부터 순서대로 지정
df.reset_index(drop=True, inplace=True)
# 최종적으로 정제된 CDS(DataFrame)를 반환
return df