Showing
2 changed files
with
104 additions
and
13 deletions
| ... | @@ -19,6 +19,8 @@ import warnings | ... | @@ -19,6 +19,8 @@ import warnings |
| 19 | warnings.simplefilter(("ignore")) | 19 | warnings.simplefilter(("ignore")) |
| 20 | import openpyxl | 20 | import openpyxl |
| 21 | import pandas as pd | 21 | import pandas as pd |
| 22 | +import re | ||
| 23 | +from datetime import datetime | ||
| 22 | 24 | ||
| 23 | class KnuSL(): | 25 | class KnuSL(): |
| 24 | 26 | ||
| ... | @@ -48,34 +50,123 @@ if __name__ == "__main__": | ... | @@ -48,34 +50,123 @@ if __name__ == "__main__": |
| 48 | print("종료하시려면 #을 입력해주세요!!!") | 50 | print("종료하시려면 #을 입력해주세요!!!") |
| 49 | print("-2:매우 부정, -1:부정, 0:중립 or Unkwon, 1:긍정, 2:매우 긍정") | 51 | print("-2:매우 부정, -1:부정, 0:중립 or Unkwon, 1:긍정, 2:매우 긍정") |
| 50 | print("\n") | 52 | print("\n") |
| 51 | - | 53 | +######### |
| 52 | -filefolder = input("종목폴더입력: ") | 54 | +Newsfilefolder = input("종목폴더입력: ") |
| 53 | -filename=input("파일이름입력:") | 55 | +Newsfilename=input("파일이름입력:") |
| 54 | -filepos = "C:/Users/yangj/PycharmProjects/pythonProject1/뉴스키워드/"+filefolder+"/" + filename + ".xlsx" | 56 | +Newsfilepos = "C:/Users/yangj/PycharmProjects/pythonProject1/뉴스키워드/"+Newsfilefolder+"/" + Newsfilename + ".xlsx" |
| 55 | -kfile = openpyxl.load_workbook(filepos)#파일이름입력 | 57 | +Newsfile = openpyxl.load_workbook(Newsfilepos)#파일이름입력 |
| 56 | -ws=kfile.active | 58 | +ws=Newsfile.active |
| 57 | data=[] | 59 | data=[] |
| 60 | +date=[] | ||
| 58 | i=0 | 61 | i=0 |
| 59 | for row in ws.rows: | 62 | for row in ws.rows: |
| 60 | data.append([]) | 63 | data.append([]) |
| 64 | + date.append(row[1].value) | ||
| 61 | for cell in row: | 65 | for cell in row: |
| 62 | if cell.value != None: | 66 | if cell.value != None: |
| 63 | data[i].append(cell.value) | 67 | data[i].append(cell.value) |
| 64 | i += 1 | 68 | i += 1 |
| 65 | -print(type(data)) | ||
| 66 | del data[0] #첫번째 의미없는 열 삭제 | 69 | del data[0] #첫번째 의미없는 열 삭제 |
| 70 | +del date[0] | ||
| 67 | for i in range(len(data)): | 71 | for i in range(len(data)): |
| 68 | del data[i][0] #각 열의 첫번째 행 삭제 | 72 | del data[i][0] #각 열의 첫번째 행 삭제 |
| 69 | -print(data) | 73 | +for i in range(len(data)): |
| 74 | + del data[i][0] #각 열의 날짜 행 삭제 | ||
| 70 | 75 | ||
| 71 | KNUdata=[] | 76 | KNUdata=[] |
| 72 | - | 77 | +Tdata=[] |
| 78 | + | ||
| 73 | for x in range(len(data)): | 79 | for x in range(len(data)): |
| 74 | KNUdata.append([]) | 80 | KNUdata.append([]) |
| 81 | + Tdata.append([]) | ||
| 75 | for y in range(len(data[x])): | 82 | for y in range(len(data[x])): |
| 76 | KNUdata[x].append(ksl.data_list(data[x][y])) | 83 | KNUdata[x].append(ksl.data_list(data[x][y])) |
| 84 | + Tdata[x].append([data[x][y], KNUdata[x][y]]) | ||
| 85 | + | ||
| 86 | +result = { '날짜':date, '단어, 극성':Tdata } | ||
| 87 | + | ||
| 88 | +df = pd.DataFrame(result) | ||
| 89 | +#print(df) | ||
| 90 | +list_df=df.values.tolist() #dataframe list로 변경 | ||
| 91 | +#print(list_df) | ||
| 92 | +#print(list_df[0][0]) 날짜 2021.01.01. | ||
| 93 | + | ||
| 94 | +new_date = [] # 날짜 중복 삭제 | ||
| 95 | +for v in date: | ||
| 96 | + if v not in new_date: | ||
| 97 | + new_date.append(v) | ||
| 98 | +#print(new_date) | ||
| 99 | + | ||
| 100 | +Setlist =[]# 날짜별 키워드 넣기 | ||
| 101 | +for v in range(len(new_date)): | ||
| 102 | + Setlist.append([]) | ||
| 103 | + Setlist[v].append(new_date[v]) | ||
| 104 | + for i in range(len(list_df)): | ||
| 105 | + for j in range(len(list_df[i][1])): | ||
| 106 | + if new_date[v] == list_df[i][0]: | ||
| 107 | + Setlist[v].append(list_df[i][1][j]) | ||
| 108 | +print(Setlist) | ||
| 109 | + | ||
| 110 | + | ||
| 111 | +#print(list_df[0][1][0]) 키워드와 극성 ['HMM…"체질개선해', 'X'] | ||
| 112 | +#print(list_df[0][1][0][1]) 극성 x | ||
| 113 | +#print(list_df[0][0].split('.')[:3]) ['2021', '01', '01'] | ||
| 114 | +#df.to_excel(Newsfilename+' KNU.xlsx',sheet_name='sheet1') | ||
| 115 | + | ||
| 116 | +Stockfilefolder = input("종목시세폴더입력: ") | ||
| 117 | +Stockfilename=input("시세파일이름입력:") | ||
| 118 | +fileStock = "C:/Users/yangj/PycharmProjects/pythonProject1/종목별시세/"+Stockfilefolder+"/" + Stockfilename + ".xlsx" | ||
| 119 | +Stockfile = openpyxl.load_workbook(fileStock)#파일이름입력 | ||
| 120 | +stock_ws=Stockfile.active | ||
| 121 | +Stock_data=[] #list 타입 | ||
| 122 | +i=0 | ||
| 123 | +for row in stock_ws.rows: | ||
| 124 | + Stock_data.append([]) | ||
| 125 | + for cell in row: | ||
| 126 | + if cell.value != None: | ||
| 127 | + Stock_data[i].append(cell.value) | ||
| 128 | + i += 1 | ||
| 129 | +del Stock_data[0] | ||
| 130 | +for i in range(len(Stock_data)): | ||
| 131 | + del Stock_data[i][2] # 대비 삭제 | ||
| 132 | +for i in range(len(Stock_data)): | ||
| 133 | + del Stock_data[i][7] #거래대금 삭제 | ||
| 134 | +for i in range(len(Stock_data)): | ||
| 135 | + del Stock_data[i][7] #시가 총액 삭제 | ||
| 136 | +for i in range(len(Stock_data)): | ||
| 137 | + del Stock_data[i][7] #상장주식 수 삭제 / 결과:'일자', '종가', '등락률', '시가', '고가', '저가', '거래량' | ||
| 138 | +print(Stock_data) | ||
| 139 | + | ||
| 140 | +def Calpercentage(a,b): | ||
| 141 | + return abs(a-b)/a*100 | ||
| 142 | +''' | ||
| 143 | +if(list_df[0][0].split('.')[:3]) == Stock_data[1][0].split('/'): # 날짜 비교 | ||
| 144 | + if Calpercentage(Stock_data[1][3],Stock_data[1][4]) > 2 : #당일 시가 대비 고가가 2퍼 높을때 | ||
| 145 | + for j in range(len(list_df[0][0])): | ||
| 146 | + if list_df[0][1][j][1] == 'X': | ||
| 147 | + list_df[0][1][j][1]= 1 | ||
| 148 | + else: | ||
| 149 | + list_df[0][1][j][1]+=1 | ||
| 150 | + elif Calpercentage(Stock_data[1][3],Stock_data[1][5])< -2 : #당일 시가 대비 저가가 2퍼 낮을 때 | ||
| 151 | + for j in range(len(list_df[0][0])): | ||
| 152 | + if list_df[0][1][j][1] == 'X': | ||
| 153 | + list_df[0][1][j][1]= -1 | ||
| 154 | + else: | ||
| 155 | + list_df[0][1][j][1]-=1 | ||
| 156 | + else: | ||
| 157 | + if Stock_data[2][2]>0: # 다음날 주가 등락률이 양수면 | ||
| 158 | + for j in range(len(list_df[0][0])): #어제뉴스는 호재 취급 | ||
| 159 | + if list_df[0][1][j][1] == 'X': | ||
| 160 | + list_df[0][1][j][1] = 1 | ||
| 161 | + else: | ||
| 162 | + list_df[0][1][j][1] += 1 | ||
| 163 | + else : | ||
| 164 | + for j in range(len(list_df[0][0])): # 음수면 어제 뉴스는 악재 취급 | ||
| 165 | + if list_df[0][1][j][1] == 'X': | ||
| 166 | + list_df[0][1][j][1] = -1 | ||
| 167 | + else: | ||
| 168 | + list_df[0][1][j][1] -= 1 | ||
| 169 | +else: | ||
| 170 | + while( | ||
| 171 | +''' | ||
| 77 | 172 | ||
| 78 | -df_list = pd.DataFrame(data) | ||
| 79 | -df_knu = pd.DataFrame(KNUdata) | ||
| 80 | -result = pd.concat([ df_list, df_knu], axis=1) #TfIf dataframe으로 변환 | ||
| 81 | -result.to_excel(filename+' KNU'+'.xlsx') | ... | ... |
종목별시세/hmm/hmm1월시세.xlsx
0 → 100644
No preview for this file type
-
Please register or login to post a comment