양지수

날짜 중복 없애기 성공

...@@ -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=[]
77 +Tdata=[]
72 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')
......
No preview for this file type