import pandas as pd
import numpy as np
save_path = "C:\\Users\\Happy\\Desktop\\논문용\\krwusdtdata\\전처리된파일\\"
저장할 파일 위치를 설정해줍니다.
데이터 가이드 데이터들을 이런식으로 시고저종 순서로 둔 데이터들을 이런식으로 컬럼별로 다운해두면
#데이터 가이드 파일 ,시고저종이 있는 데이터는 good 하지만 없는 데이터는 새로운 컬럼명을 부여할 것!
datagGuide = pd.read_excel("datagGuide.xlsx", sheet_name = None)
def Pretreatment_by_datagGuide(df): #데이터 가이드에서 다운한 데이터 전처리
data_columns = list(df.keys())
data = {}
for i in range(len(data_columns)):
data[data_columns[i]] = pd.DataFrame(df[data_columns[i]].iloc[13:,:].values,columns = ["time","Open","High","Low","Close"])
data[data_columns[i]] = data[data_columns[i]].sort_values(['time'],ascending= True).drop_duplicates('time').reset_index(drop = True).rename(columns={'날짜':'time'})
data[data_columns[i]][["Open","High","Low","Close"]] = data[data_columns[i]][["Open","High","Low","Close"]].astype("float")
return data
datagGuide = Pretreatment_by_datagGuide(datagGuide)
이런식으로 쓰면 온전한 데이터를 얻을 수 있습니다.( 딕셔너리 안에 데이터 프레임이 저장된 형태)
코드를 설명하자면 데이터 가이드의 13번째 줄까지는 데이터 가이드 형식에 따른 파이썬에서 필요하지 않는데이터라 .iloc를 이용해 13번째 행까지 잘랐습니다. 컬럼명도 다시 재지정해줍니다.
그리고 나머지 데이터들을 수치형(float)으로 받습니다.
keys = list(datagGuide.keys())
for i in range(len(datagGuide)):
print(datagGuide[keys[i]])
print(datagGuide[keys[i]].info())
datagGuide[keys[i]].to_csv(save_path+keys[i]+".csv",index = False, encoding = "cp949")
위 코드는 이러한 데이터를 한번에 저장하는 코드입니다.
##########################
만약 기준금리 같이 시,고,저,종 이 아닌 다른 컬럼을 가지는 데이터 예시도 들겠습니다.
base_rate = pd.read_excel("금리.xlsx", sheet_name = None)
def base_rate_by_datagGuide(df):
data_columns = list(df.keys())
data = {}
for i in range(len(data_columns)):
data[data_columns[i]] = pd.DataFrame(df[data_columns[i]].iloc[13:,:].values,columns = ["time","Open","None"])
data[data_columns[i]] = data[data_columns[i]].sort_values(['time'],ascending= True).drop_duplicates('time').reset_index(drop = True).rename(columns={'날짜':'time'})
data[data_columns[i]][["Open"]] = data[data_columns[i]][["Open"]].astype("float")
try:
del data[data_columns[i]]["None"]
except:
pass
return data
base_rate = base_rate_by_datagGuide(base_rate)
keys = list(base_rate.keys())
for i in range(len(base_rate)):
print(base_rate[keys[i]])
print(base_rate[keys[i]].info())
base_rate[keys[i]].to_csv(save_path+keys[i]+".csv",index = False, encoding = "cp949")
여기에선 function안의 for 문에 columns = ["time","Open","None"]) 이렇게 되어있고
나중에 try문에서 None을 지우는 모습을 볼 수 있는데.. 이건 데이터 가이드의 컬럼이 최소 3개라서 데이터가 한줄로 된 데이터를 받을경우엔 None이 있어야 하는 모습입니다. 이런식으로 변형하여 사용하면 쉽게 대이터를 가공할 수 있습니다.
https://wzxcv123.tistory.com/12
인베스트 데이터 전처리(with python)+예스 트레이더, 데이터 가이드포함
import pandas as pd import numpy as np save_path = "C:\\Users\\Happy\\Desktop\\논문용\\krwusdtdata\\전처리된파일\\" 먼저 저장할 폴더를 지정해줍니다. 이런식으로 다운로드 받은 인베스트.com 파일을 다..
wzxcv123.tistory.com
https://wzxcv123.tistory.com/14
yes trader 데이터 전처리(with python)+인베스트 , 데이터 가이드 포함
import pandas as pd import numpy as np save_path = "C:\\Users\\Happy\\Desktop\\논문용\\krwusdtdata\\전처리된파일\\" 먼저 저장할 경로를 지정합니다. yes trader 에서 데이터를 다운 받으실 경우엔 데이터..
wzxcv123.tistory.com
'IT - 코딩 > 트레이딩 관련' 카테고리의 다른 글
무위험 차익거래 자동매매 프로그램 2.주요 이슈와 해결 내용. (0) | 2023.02.26 |
---|---|
무위험 차익거래 자동매매 프로그램 1.API허용 및 입출금 주소등록 (4) | 2023.02.26 |
원하는 로직의 검색기에 따라서 종목이 뜨면 텔레그램으로 알람을 보내는 프로그램 (0) | 2023.02.23 |
트위터 api를 통한 긍부정 판단(NLP)모델을 추가한 추적 손절매 응용 방식 (0) | 2023.02.23 |
yes trader 데이터 전처리(with python)+인베스트 , 데이터 가이드 포함 (0) | 2022.07.22 |