# 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