import pandas as pd
import numpy as np
save_path = "C:\\Users\\Happy\\Desktop\\논문용\\krwusdtdata\\전처리된파일\\"
먼저 저장할 폴더를 지정해줍니다.
이런식으로 다운로드 받은 인베스트.com 파일을 다운해줍니다. 기간이 길면 두번에 나누어 다운해야 하는 경우가 있습니다.
# 인베스트 컴 데이터 전처리 (인베스트에서 csv 파일 다운 후 아예 열지 않을 것을 권장!!)
KRW_USDT = pd.read_csv("USD_KRW 내역.csv")
KRW_EUR = pd.read_csv("EUR_KRW 내역.csv")
KRW_CNY = pd.read_csv("CNY_KRW 내역.csv")
DXY = pd.read_csv("달러 지수 내역.csv")# 미국 달러 인덱스
KRW_USDT_2 = pd.read_csv("USD_KRW 내역 2.csv")
KRW_EUR_2 = pd.read_csv("EUR_KRW 내역 2.csv")
KRW_CNY_2 = pd.read_csv("CNY_KRW 내역 2.csv")
DXY_2 = pd.read_csv("달러 지수 내역 2.csv")# 미국 달러 인덱스
KRW_USDT = pd.concat([KRW_USDT,KRW_USDT_2],axis = 0,ignore_index=True)#.reset_index(drop =True,inplace = False)
KRW_EUR = pd.concat([KRW_EUR,KRW_EUR_2],axis = 0,ignore_index=True)#.reset_index(drop =True,inplace = False)
KRW_CNY = pd.concat([KRW_CNY,KRW_CNY_2],axis = 0,ignore_index=True)#.reset_index(drop =True,inplace = False)
DXY = pd.concat([DXY,DXY_2],axis = 0, ignore_index=True)#.reset_index(drop =True,inplace = False)
그럼 이런식으로 concat까지만 해주시면 나머지는
def Pretreatment_by_invest(df): #인베스트에서 다운한 데이터 전처리
df = df.rename(columns={'오픈':'Open','고가':'High',"저가":"Low","종가":"Close"})
df = df[["날짜","Open","High","Low","Close"]]
# 날짜 daytime형태로 변환
df["날짜"] = [df["날짜"][i][0:4]+"-"+df["날짜"][i][6:8]+"-"+df["날짜"][i][10:12] for i in range(len(df["날짜"]))]
df['날짜'] = pd.to_datetime(df['날짜'], format='%Y-%m-%d', errors='raise')
columns = df[["Open","High","Low","Close"]].columns
try:
for i in range(len(columns)):
df[columns[i]] = df[columns[i]].apply(lambda x : float(x.replace(',', ''))) ## @ lambda를 사용하여 한번에 모든 행 적용
except:
pass
df = df.sort_values(['날짜'],ascending= True).drop_duplicates('날짜').reset_index(drop = True).rename(columns={'날짜':'time'})
return df
KRW_USDT = Pretreatment_by_invest(KRW_USDT)
KRW_EUR = Pretreatment_by_invest(KRW_EUR)
KRW_CNY = Pretreatment_by_invest(KRW_CNY)
DXY = Pretreatment_by_invest(DXY)
이 함수 하나로 데이터가 전처리되게 해두었습니다.
코드를 설명하자면 먼저, 컬럼명을 바꾸어주었고, 날짜 형식이 아닌 str형식의 데이터를 date time 형식의 변수로 바꾸어 주기위해 알맞게 데이터를 가공한후 date time 형식으로 바꾸었습니다.
그리고 시가 고가 저가 종가 데이터에 포함된 자릿수 표현 기호인 ","때문에 수치형으로 인식해주지 못하니 ,를 지우고 수치형 으로 만들어 데이터프레임을 반환합니다.
KRW_USDT.to_csv(save_path+"KRW_USDT.csv",index = False, encoding = "cp949")
KRW_EUR.to_csv(save_path+"KRW_EUR.csv",index = False, encoding = "cp949")
KRW_CNY.to_csv(save_path+"KRW_CNY.csv",index = False, encoding = "cp949")
DXY.to_csv(save_path+"DXY.csv",index = False, encoding = "cp949")
KRW_EUR,KRW_EUR.info()
그 다음 저장을 원하는 폴더 위치에 csv파일로 저장합니다.
'IT - 코딩 > 유용한 코드' 카테고리의 다른 글
파이썬 exe 파일 만들기 (0) | 2023.04.23 |
---|---|
바이낸스 가격데이터 websoket으로 받기 with node.js python (0) | 2022.11.27 |
주피터 노트북 테마 바꾸기 (0) | 2022.08.12 |
한 폴더 내 파일들 전부 불러오기(with python)(for 머신러닝) (0) | 2022.08.12 |