def collect_stock_info(code_num): page_df = stockUtil.get_page_first_data(stockUtil.get_stock_info_url(code_num), 1) page_df = page_df.set_index("날짜") df = DbMgr.get_stock_limit_data(code_num, 130) for today in TodayStrList: df.loc[today] = page_df.loc[today] df.ix[today, "MA5"] = df["종가"].rolling(window=5).mean()[today] df.ix[today, "MA20"] = df["종가"].rolling(window=20).mean()[today] df.ix[today, "MA60"] = df["종가"].rolling(window=60).mean()[today] df.ix[today, "MA120"] = df["종가"].rolling(window=120).mean()[today] df["MA5"].fillna(0, inplace=True) df["MA20"].fillna(0, inplace=True) df["MA60"].fillna(0, inplace=True) df["MA120"].fillna(0, inplace=True) page_df_list = stockUtil.get_page_data(stockUtil.get_stock_info_frgn_url(code_num), 1) df_frgn = pd.DataFrame() if len(page_df_list) > 2: page_df = page_df_list[2] df_frgn = df_frgn.append(page_df.dropna(), ignore_index=True) df_frgn = df_frgn.set_index("날짜") for child in TodayStrList: df.ix[child, "등락률"] = df_frgn.ix[child, "등락률"] df.ix[child, "기관"] = df_frgn.ix[child, "기관"] df.ix[child, "외국인"] = df_frgn.ix[child, "외국인"] df.ix[child, "보유주수"] = df_frgn.ix[child, "Unnamed: 7"] df.ix[child, "보유율"] = df_frgn.ix[child, "Unnamed: 8"] df[["종가", "전일비", "시가", "고가", "저가", "거래량", "MA5", "MA20", "MA60", "MA120"]] = \ df[["종가", "전일비", "시가", "고가", "저가", "거래량", "MA5", "MA20", "MA60", "MA120"]].astype(int) for today in TodayStrList: stock_info = df.loc[today] DbMgr.insert_into_stock_info_db(code_num, today, int(stock_info["종가"]), int(stock_info["전일비"]), int(stock_info["시가"]), int(stock_info["고가"]), int(stock_info["저가"]), int(stock_info["거래량"]), stock_info["등락률"], stock_info["기관"], stock_info["외국인"], stock_info["보유주수"], stock_info["보유율"], int(stock_info["MA5"]), int(stock_info["MA20"]), int(stock_info["MA60"]), int(stock_info["MA120"]))
def collect_total_stock_info(code_num): DbMgr.create_stock_info_db(code_num) df = stockUtil.get_data(stockUtil.get_stock_info_url(code_num), "날짜") df.insert(len(df.columns), "MA5", df["종가"].rolling(window=5).mean()) df.insert(len(df.columns), "MA20", df["종가"].rolling(window=20).mean()) df.insert(len(df.columns), "MA60", df["종가"].rolling(window=60).mean()) df.insert(len(df.columns), "MA120", df["종가"].rolling(window=120).mean()) df["MA5"].fillna(0, inplace=True) df["MA20"].fillna(0, inplace=True) df["MA60"].fillna(0, inplace=True) df["MA120"].fillna(0, inplace=True) df[["MA5", "MA20", "MA60", "MA120"]] = df[["MA5", "MA20", "MA60", "MA120"]].astype(int) df_frgn = stockUtil.get_frgn_data(stockUtil.get_stock_info_frgn_url(code_num), "날짜") for index, row in df.iterrows(): stock_date = row["날짜"] # if stock_date in TodayStrList: # if True: stock_close = row["종가"] stock_diff = row["전일비"] stock_open = row["시가"] stock_high = row["고가"] stock_low = row["저가"] stock_volume = row["거래량"] ma5 = row["MA5"] ma20 = row["MA20"] ma60 = row["MA60"] ma120 = row["MA120"] if stock_date in df_frgn.index: frgn_info = df_frgn.loc[stock_date] DbMgr.insert_into_stock_info_db(code_num, stock_date, stock_close, stock_diff, stock_open, stock_high, stock_low, stock_volume, frgn_info["등락률"], frgn_info["기관"], frgn_info["외국인"], frgn_info["Unnamed: 7"], frgn_info["Unnamed: 8"], ma5, ma20, ma60, ma120) else: DbMgr.insert_into_stock_info_db(code_num, stock_date, stock_close, stock_diff, stock_open, stock_high, stock_low, stock_volume, "0", 0, 0, 0, "0", ma5, ma20, ma60, ma120)