본문 바로가기

2019년 혁신성장 청년인재 집중양성(빅데이터)/집중양성과정 프로젝트 01

[기계학습을 위한 데이터 전처리] 시간단위를 잘못 계산해서, 처음 부터 다시해야 한다는 sull.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import pandas as pd
import numpy as np
 
 
# bitstamp: 비트코인 가격 가져오기
 
bitstamp = pd.read_csv('/content/drive/My Drive/BIGCOIN/PREPORCOESSING/bitcoin-historical-data/bitstampUSD_1-min_data_2012-01-01_to_2019-08-12.csv')
 
# 비트코인 감성분석을 위한 traindata 가져오기
 
train = pd.read_csv("/content/drive/My Drive/BIGCOIN/PREPORCOESSING/트레인데이터/train_datachanged.csv")
 
 
# date time과 unix time이 다르기 때문에 date time을 unix time으로 변환 하기 위한 datetounix 함수 정의
import time
 
#문자열로된 date 값을 datetime object로 변경
 
def datetounix(strdate):
  #date_string = train['date'][1]
  datetimeobj= datetime.strptime(strdate,'%Y-%m-%d %H:%M:%S')
  
  return timestamp
 
 
# 변환을 위한 na 제거, 중복값제거 및 재정렬
 
bitstamp_na = bitstamp.dropna(axis=0)
bitstamp_dist=bitstamp_na.drop_duplicates()
bitstamp_dist= bitstamp_dist.reset_index(drop=True)
 
 
# 변환된 unixtime을 stamp에 추가
 
stamp =[]
 
for i in range(len(train_dist[['date']])):
  timestamp=datetounix(str(train_dist['date'][i]))
 
# stamp를 train_dist에 열을 추가
 
train_dist["timestamp"= stamp
train_clean =train_dist[["date""timestamp""tweet""sentiment""sent_score"]]
 
#저장
 
train_clean.to_csv("train_clean.csv")
 
 
#문제점
 
train데이터의 timestamp에서의 가격지표(+,-, 실제 변화량, 거래량)을 가져와야 하는데 timestamp가 초단위로 되어 있어서 맞아 떨어지는 것이 많이 없다.
 
 
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs

 

초기 가격 데이터는 불규칙하고 드문드문 있다.

가장 최근 데이터는 1분 마다 되어 있으니, timestamp도 초단위가 아닌 분단위로 변환 시켜 주어야 할 것 같다.

 

 

timestamp를 분단위로 끊어주기 위해서 바꿔주고 확인하였다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import pandas as pd
import numpy as np
 
# csv파일 dataFrame으로 불러오기
train_clean = pd.read_csv("/content/drive/My Drive/BIGCOIN/PREPORCOESSING/트레인데이터/train_clean.csv")
 
 
# timestamp 값을 분단위로 끊어줌
for i in range(len(train_clean[["timestamp"]])):
  train_clean["timestamp"][i]= int(train_clean["timestamp"][i]) - int(train_clean["timestamp"][i])%60
  print(i)
 
 
# 값이 실제로 맞는지 확인
print(train_clean["timestamp"][29])
print(train_clean["timestamp"][70])
 
 
# 저장
train_clean.to_csv("train_clean_timestampchagned")
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs