def download_economy(): #货币供应量 ts.get_money_supply().to_csv(path + 'money_supply.csv') #季度GDP ts.get_gdp_quarter().to_csv(path + 'gdp_quarter.csv') #年度GDP ts.get_gdp_year().to_csv(path + 'gdp_year.csv') #CPI ts.get_cpi().to_csv(path + 'cpi.csv') #存款准备金率 ts.get_rrr().to_csv(path + 'rrr.csv')
def add_quarter_gdp_page(canvas_para): """ 函数功能:增加季度GDP页 :param canvas_para: :return: """ c = canvas_para gdp_quarter = ts.get_gdp_quarter() gdp_yoy = extract_point_from_df_date_x(df_origin=gdp_quarter, date_col='quarter', y_col='gdp_yoy', timeAxis='quarter') pi_yoy = extract_point_from_df_date_x(df_origin=gdp_quarter, date_col='quarter', y_col='pi_yoy', timeAxis='quarter') si_yoy = extract_point_from_df_date_x(df_origin=gdp_quarter, date_col='quarter', y_col='si_yoy', timeAxis='quarter') ti_yoy = extract_point_from_df_date_x(df_origin=gdp_quarter, date_col='quarter', y_col='ti_yoy', timeAxis='quarter') gdp_pull_drawing = gen_lp_drawing([tuple(gdp_yoy), tuple(pi_yoy), tuple(si_yoy), tuple(ti_yoy)], data_note=['GDP同比增长率','第一产业增长率','第二产业增长率','第三产业增长率'], time_axis='quarter') renderPDF.draw(drawing=gdp_pull_drawing, canvas=c, x=10, y=letter[1] * 0.6) c.showPage() return c
def get_gdp_quarter(): try: df = ts.get_gdp_quarter() engine = create_engine('mysql://*****:*****@127.0.0.1/stock?charset=utf8') df.to_sql('gdp_quarter', engine, if_exists='append') print "message" except Exception, e: e.message
def get_gdp_quarter_info(): df = ts.get_gdp_quarter() if df is not None: res = df.to_sql(microE_gdp_quarter, engine, if_exists='replace') msg = 'ok' if res is None else res print('获取国内生产总值(季度): ' + msg + '\n') else: print('获取国内生产总值(季度): ' + 'None' + '\n')
def stat_all(tmp_datetime): # 存款利率 data = ts.get_deposit_rate() common.insert_db(data, "ts_deposit_rate", False, "`date`,`deposit_type`") # 贷款利率 data = ts.get_loan_rate() common.insert_db(data, "ts_loan_rate", False, "`date`,`loan_type`") # 存款准备金率 data = ts.get_rrr() common.insert_db(data, "ts_rrr", False, "`date`") # 货币供应量 data = ts.get_money_supply() common.insert_db(data, "ts_money_supply", False, "`month`") # 货币供应量(年底余额) data = ts.get_money_supply_bal() common.insert_db(data, "ts_money_supply_bal", False, "`year`") # 国内生产总值(年度) data = ts.get_gdp_year() common.insert_db(data, "ts_gdp_year", False, "`year`") # 国内生产总值(季度) data = ts.get_gdp_quarter() common.insert_db(data, "ts_get_gdp_quarter", False, "`quarter`") # 三大需求对GDP贡献 data = ts.get_gdp_for() common.insert_db(data, "ts_gdp_for", False, "`year`") # 三大产业对GDP拉动 data = ts.get_gdp_pull() common.insert_db(data, "ts_gdp_pull", False, "`year`") # 三大产业贡献率 data = ts.get_gdp_contrib() common.insert_db(data, "ts_gdp_contrib", False, "`year`") # 居民消费价格指数 data = ts.get_cpi() common.insert_db(data, "ts_cpi", False, "`month`") # 工业品出厂价格指数 data = ts.get_ppi() common.insert_db(data, "ts_ppi", False, "`month`") #############################基本面数据 http://tushare.org/fundamental.html # 股票列表 data = ts.get_stock_basics() print(data.index) common.insert_db(data, "ts_stock_basics", True, "`code`")
def download_economy(): path = './data/' df = ts.get_money_supply() df.to_csv(path+'money_supply.csv') ts.get_gdp_quarter().to_csv(path+'gdp_quarter.csv') ts.get_gdp_year().to_csv(path + 'gdp_year.csv') ts.get_cpi().to_csv(path+'cpi.csv') # ts.get_hist_data('sz').to_csv(path + 'sz.csv') # ts.get_hist_data('sh').to_csv(path + 'sh.csv') # import time import datetime # now_year = time.localtime().tm_year # now_mon = time.localtime().tm_mon # now_day = time.localtime().tm_mday years = 3 start = datetime.datetime.today().date() + datetime.timedelta(-365*years) end = datetime.datetime.today().date() ts.get_k_data('399001', start=str(start), index=True).to_csv(path + 'sz.csv') #默认2年 , ts.get_k_data('000001', start=str(start), index=True).to_csv(path + 'sh.csv') # ts.get_rrr().to_csv(path + 'rrr.csv')
def return_gdp_quarter(self): ''' gdp(季度) ''' df = ts.get_gdp_quarter() df = df[df['quarter'] >= 1990] detail = {} for col in df.columns: lt = df[col].values.tolist() lt.reverse() for idx in xrange(0, len(lt)): if math.isnan(lt[idx]): lt[idx] = None detail[col] = lt self.reply(detail=detail)
def download_economy(): import tushare as ts path = 'C:/Users/Administrator/stockPriditionProjects/data/' ts.get_money_supply().to_csv(path + 'money_supply.csv') ts.get_gdp_quarter().to_csv(path + 'gdp_quarter.csv') ts.get_gdp_year().to_csv(path + 'gdp_year.csv') ts.get_cpi().to_csv(path + 'cpi.csv') # ts.get_hist_data('sz').to_csv(path + 'sz.csv') # ts.get_hist_data('sh').to_csv(path + 'sh.csv') # import time import datetime # now_year = time.localtime().tm_year # now_mon = time.localtime().tm_mon # now_day = time.localtime().tm_mday years = 3 start = datetime.datetime.today().date() + datetime.timedelta(-365 * years) end = datetime.datetime.today().date() ts.get_k_data('399001', start=str(start), index=True).to_csv(path + 'sz.csv') #默认2年 , ts.get_k_data('000001', start=str(start), index=True).to_csv(path + 'sh.csv') #存款准备金率 ts.get_rrr().to_csv(path + 'rrr.csv')
def get_macro(): Macro={} Macro['Depo']=ts.get_deposit_rate() Macro['Loan']=ts.get_loan_rate() Macro['RRR']=ts.get_rrr() Macro['MoneySupply']=ts.get_money_supply() Macro['MoneyBalance']=ts.get_money_supply_bal() Macro['GDPYOY']=ts.get_gdp_year() Macro['GDPQOQ']=ts.get_gdp_quarter() Macro['GDPFOR']=ts.get_gdp_for() Macro['GDPPULL']=ts.get_gdp_pull() Macro['GDPCON']=ts.get_gdp_contrib() Macro['CPI']=ts.get_cpi() Macro['PPI']=ts.get_ppi() Macro['SHIBO']=ts.shibor_data() return Macro
def get_gdp_quarter(): """得到国内生产总值(季度)""" logger.info('Begin get GrossDomesticProductQuarter.') try: data_df = ts.get_gdp_quarter() except Exception as e: logger.exception('Error get GrossDomesticProductQuarter.') return None else: data_dicts = [] if data_df.empty: logger.warn('Empty get GrossDomesticProductQuarter.') else: data_dicts = [{'quarter': row[0], 'gdp': row[1], 'gdp_yoy': row[2], 'pi': row[3], 'pi_yoy': row[4], 'si': row[5], 'si_yoy': row[6], 'ti': row[7], 'ti_yoy': row[8]} for row in data_df.values] logger.info('Success get GrossDomesticProductQuarter.') return data_dicts
def __call__(self, conns): self.base = Base() self.financial_data = conns['financial_data'] '''存款利率''' deposit_rate = ts.get_deposit_rate() self.base.batchwri(deposit_rate, 'deposit_rate', self.financial_data) '''贷款利率''' loan_rate = ts.get_loan_rate() self.base.batchwri(loan_rate, 'loan_rate', self.financial_data) '''存款准备金率''' rrr = ts.get_rrr() self.base.batchwri(rrr, 'RatioOfDeposit', self.financial_data) '''货币供应量''' money_supply = ts.get_money_supply() self.base.batchwri(money_supply, 'money_supply', self.financial_data) '''货币供应量(年底余额)''' money_supply_bal = ts.get_money_supply_bal() self.base.batchwri(money_supply_bal, 'money_supply_bal', self.financial_data) '''国内生产总值(年度)''' gdp_year = ts.get_gdp_year() self.base.batchwri(gdp_year, 'gdp_year', self.financial_data) '''国内生产总值(季度)''' gdp_quarter = ts.get_gdp_quarter() self.base.batchwri(gdp_quarter, 'gdp_quarter', self.financial_data) '''三大需求对GDP贡献''' gdp_for = ts.get_gdp_for() self.base.batchwri(gdp_for, 'gdp_for', self.financial_data) '''三大产业对GDP拉动''' gdp_pull = ts.get_gdp_pull() self.base.batchwri(gdp_pull, 'gdp_pull', self.financial_data) '''三大产业贡献率''' gdp_contrib = ts.get_gdp_contrib() self.base.batchwri(gdp_contrib, 'gdp_contrib', self.financial_data) '''居民消费价格指数''' cpi = ts.get_cpi() self.base.batchwri(cpi, 'cpi', self.financial_data) '''工业品出场价格指数''' ppi = ts.get_ppi() self.base.batchwri(ppi, 'ppi', self.financial_data)
def getGDP(ann_dt_label): raw_data = ts.get_gdp_quarter() year_quater_label = 'year_quarter' raw_data = raw_data.rename({'quarter': year_quater_label}, axis=1) raw_data.loc[:, 'year'] = raw_data[year_quater_label].astype('int') raw_data.loc[:, 'season'] = ( (raw_data[year_quater_label] - raw_data['year']) * 10).apply(lambda x: round(x)) raw_data = raw_data.drop(year_quater_label, axis=1) # ========= change datatype # raw_data = chgDataType(raw_data, ['year', 'season']) # ========= change column names raw_data = raw_data.rename( { 'pi': 'prime_industry', 'si': 'second_industry' }, axis=1) # ========== announcement date season_announcement_dict = { 1: '-04-15', 2: '-07-15', 3: '-10-15', 4: '-01-15', } processed_data = pd.DataFrame([]) for tmp_season, tmp_ann_dt in season_announcement_dict.items(): tmp_data = raw_data.loc[raw_data['season'] == tmp_season] tmp_data.loc[:, ann_dt_label] = tmp_data['year'].apply( lambda x: '%d%s' % (x, tmp_ann_dt)) processed_data = processed_data.append(tmp_data) return processed_data
#存款利率 saving_rate = ts.get_deposit_rate() #贷款利率 loan_rate = ts.get_loan_rate() #存款准备金率 reserve_rate = ts.get_rrr() #货币供应量 m_supply = ts.get_money_supply() #货币供应量(年底余额) m_supply_y = ts.get_money_supply_bal() #GDP gdp_y = ts.get_gdp_year() gdp_q = ts.get_gdp_quarter() #三大需求对GDP贡献 gdp_for = ts.get_gdp_for() #三大产业对GDP拉动 gdp_pull = ts.get_gdp_pull() #三大产业贡献率 gdp_contrib = ts.get_gdp_contrib() cpi = ts.get_cpi() ppi = ts.get_ppi()
def getGDPQuarter(self): file_name = 'gdp_quarter.csv' path = self.index + self.index_gdp_quarter + file_name data = ts.get_gdp_quarter() data.to_csv(path, encoding='utf-8') print(file_name)
import matplotlib.pyplot as plt import numpy as np import tushare as ts # 获取年度gdp信息 gdp_years = ts.get_gdp_year().head(5) # 绘制年度gdp图片所用数据存储 years = [] year_gdps = [] # 保存最近5年的GDP数据 for i in range(5): years.append(int(gdp_years.iloc[i]['year'])) year_gdps.append(int(gdp_years.iloc[i]['gdp'])) # 查询季度GDP记录 gdp_quarters = ts.get_gdp_quarter().head(25) quarters = [] quarter_gdps = [] # 保存最近5年的GDP的季度信息 for i in range(25): quarter_information = gdp_quarters.iloc[i] # 剔除掉超出这5年内的信息 if int(quarter_information.quarter) > years[0]: continue elif int(quarter_information.quarter) < years[-1]: break quarters.append(quarter_information.quarter) quarter_gdps.append(quarter_information.gdp) # 为后续绘图方便,整理数据
def macro_type(macros_type): if macros_type == 'deposit_rate': deposit_rate = ts.get_deposit_rate() if deposit_rate is not None: deposit_rate.to_sql('macros_deposit_rate', engine, flavor='mysql', if_exists='replace') elif macros_type == 'loan_rate': loan_rate = ts.get_loan_rate() if loan_rate is not None: loan_rate.to_sql('macros_loan_rate', engine, flavor='mysql', if_exists='replace') elif macros_type == 'rrr': rrr = ts.get_rrr() if rrr is not None: rrr.to_sql('macros_rrr', engine, flavor='mysql', if_exists='replace') elif macros_type == 'money_supply': money_supply = ts.get_money_supply() if money_supply is not None: money_supply.to_sql('macros_money_supply', engine, flavor='mysql', if_exists='replace') elif macros_type == 'money_supply_bal': money_supply_bal = ts.get_money_supply_bal() if money_supply_bal is not None: money_supply_bal.to_sql('macros_money_supply_bal', engine, flavor='mysql', if_exists='replace') elif macros_type == 'gdp_year': gdp_year = ts.get_gdp_year() if gdp_year is not None: gdp_year.to_sql('macros_gdp_year', engine, flavor='mysql', if_exists='replace') elif macros_type == 'gdp_quater': gdp_quater = ts.get_gdp_quarter() if gdp_quater is not None: gdp_quater.to_sql('macros_gdp_quater', engine, flavor='mysql', if_exists='replace') elif macros_type == 'gdp_for': gdp_for = ts.get_gdp_for() if gdp_for is not None: gdp_for.to_sql('macros_gdp_for', engine, flavor='mysql', if_exists='replace') elif macros_type == 'gdp_pull': gdp_pull = ts.get_gdp_pull() if gdp_pull is not None: gdp_pull.to_sql('macros_gdp_pull', engine, flavor='mysql', if_exists='replace') elif macros_type == 'gdp_contrib': gdp_contrib = ts.get_gdp_contrib() if gdp_contrib is not None: gdp_contrib.to_sql('macros_gdp_contrib', engine, flavor='mysql', if_exists='replace') elif macros_type == 'cpi': cpi = ts.get_cpi() if cpi is not None: cpi.to_sql('macros_cpi', engine, flavor='mysql', if_exists='replace') elif macros_type == 'ppi': ppi = ts.get_ppi() if ppi is not None: ppi.to_sql('macros_ppi', engine, flavor='mysql', if_exists='replace')
def getgdpquarterdb(): gdpquarter = ts.get_gdp_quarter() gdpquarter.to_sql('gdpquarter_data',ENGINE,if_exists='append')
def init(engine, session): tbl = "macro_deposit" tsl.log(tbl + " start...") df = ts.get_deposit_rate() df.to_sql(tbl,engine,if_exists='replace') tsl.log(tbl + " done") tbl = "macro_loan" tsl.log(tbl + " start...") df = ts.get_loan_rate() df.to_sql(tbl,engine,if_exists='replace') tsl.log(tbl + " done") tbl = "macro_rrr" tsl.log(tbl + " start...") df = ts.get_rrr() df.to_sql(tbl,engine,if_exists='replace') tsl.log(tbl + " done") tbl = "macro_money_supply" tsl.log(tbl + " start...") df = ts.get_money_supply() df.to_sql(tbl,engine,if_exists='replace') tsl.log(tbl + " done") tbl = "macro_money_supply_year" tsl.log(tbl + " start...") df = ts.get_money_supply_bal() df.to_sql(tbl,engine,if_exists='replace') tsl.log(tbl + " done") tbl = "macro_gdp_year" tsl.log(tbl + " start...") df = ts.get_gdp_year() df.to_sql(tbl,engine,if_exists='replace') tsl.log(tbl + " done") tbl = "macro_gdp_quarter" tsl.log(tbl + " start...") df = ts.get_gdp_quarter() df.to_sql(tbl,engine,if_exists='replace') tsl.log(tbl + " done") tbl = "macro_gdp_for" tsl.log(tbl + " start...") df = ts.get_gdp_for() df.to_sql(tbl,engine,if_exists='replace') tsl.log(tbl + " done") tbl = "macro_gdp_pull" tsl.log(tbl + " start...") df = ts.get_gdp_pull() df.to_sql(tbl,engine,if_exists='replace') tsl.log(tbl + " done") tbl = "macro_gdp_contrib" tsl.log(tbl + " start...") df = ts.get_gdp_contrib() df.to_sql(tbl,engine,if_exists='replace') tsl.log(tbl + " done") tbl = "macro_cpi" tsl.log(tbl + " start...") df = ts.get_cpi() df.to_sql(tbl,engine,if_exists='replace') tsl.log(tbl + " done") tbl = "macro_ppi" tsl.log(tbl + " start...") df = ts.get_ppi() df.to_sql(tbl,engine,if_exists='replace') tsl.log(tbl + " done") tbl = "gold_and_foreign_reserves" tsl.log(tbl + " start...") df = ts.get_gold_and_foreign_reserves() df.to_sql(tbl,engine,if_exists='replace') tsl.log(tbl + " done")
def capture_stock_data(): capture_date = datetime.datetime.now().strftime("%Y%m%d") save_dir = "/home/dandelion/stock_data/" + capture_date if not os.path.exists(save_dir): os.mkdir(save_dir) print("The save directory is created successfully!\n", save_dir) print("The save directory is already exist!\n", save_dir) # ======================Daily Command================================================================ # get the boxoffcie data of the last day and save as csvfile named as the capture command ts.day_boxoffice().to_csv( save_dir + "/" + capture_date + "_day_boxoffice.csv", header=True, sep=",", index=False, ) print("day_boxoffice data capture completed!") # get the cinema data of the last day and save as csvfile named as the capture command ts.day_cinema().to_csv( save_dir + "/" + capture_date + "_day_cinema.csv", header=True, sep=",", index=False, ) print("day_cinema data capture completed!") ts.month_boxoffice().to_csv( save_dir + "/" + capture_date + "_month_boxoffice.csv", header=True, sep=",", index=False, ) print("month_boxoffice data capture completed!") ts.realtime_boxoffice().to_csv( save_dir + "/" + capture_date + "_realtime_boxoffice.csv", header=True, sep=",", index=False, ) print("realtime_boxoffice data capture completed!") # get the stock data index of the last day and save as csvfile named as the capture command ts.get_index().to_csv( save_dir + "/" + capture_date + "_get_index.csv", header=True, sep=",", index=False, ) print("get_index data capture completed!") # get the history cpi data and save as csvfile named as the capture command ts.get_cpi().to_csv( save_dir + "/" + capture_date + "_get_cpi.csv", header=True, sep=",", index=False, ) print("get_cpi data capture completed!") # get the history gdp data by month and save as csvfile named as the capture command ts.get_gdp_year().to_csv( save_dir + "/" + capture_date + "_get_gdp_year.csv", header=True, sep=",", index=False, ) print("get_gdp_year data capture completed!") # get today all stock data and save as csvfile named as the capture command # ts.get_today_all().to_csv(save_dir+'/'+capture_date+'_get_today_all.csv',header=True,sep=',',index=False) # get detail information of the top brokers today and save as csvfile named as the capture command ts.broker_tops().to_csv( save_dir + "/" + capture_date + "_broker_tops.csv", header=True, sep=",", index=False, ) print("broker_tops data capture completed!") # get detail information of the top brokers today and save as csvfile named as the capture command ts.cap_tops().to_csv( save_dir + "/" + capture_date + "_cap_tops.csv", header=True, sep=",", index=False, ) print("cap_tops data capture completed!") ts.get_area_classified().to_csv( save_dir + "/" + capture_date + "_get_area_classified.csv", header=True, sep=",", index=False, ) print("get_area_classified data capture completed!") # ts.get_balance_sheet(code='').to_csv(save_dir+'/'+capture_date+'_get_balance_sheet.csv',header=True,sep=',',index=False) # print('get_balance_sheet data capture completed!') # ts.get_cash_flow(code='').to_csv(save_dir+'/'+capture_date+'_get_cash_flow.csv',header=True,sep=',',index=False) # print('get_cash_flow data capture completed!') ts.get_day_all().to_csv( save_dir + "/" + capture_date + "_get_day_all.csv", header=True, sep=",", index=False, ) print("get_day_all data capture completed!") ts.get_cashflow_data(2018, 3).to_csv( save_dir + "/" + capture_date + "_get_cashflow_data.csv", header=True, sep=",", index=False, ) print("get_cashflow_data data capture completed!") ts.get_concept_classified().to_csv( save_dir + "/" + capture_date + "_get_concept_classified.csv", header=True, sep=",", index=False, ) print("get_concept_classified data capture completed!") ts.get_debtpaying_data(2018, 3).to_csv( save_dir + "/" + capture_date + "_get_debtpaying_data.csv", header=True, sep=",", index=False, ) print("get_debtpaying_data data capture completed!") ts.get_deposit_rate().to_csv( save_dir + "/" + capture_date + "_get_deposit_rate.csv", header=True, sep=",", index=False, ) print("get_deposit_rate data capture completed!") ts.get_gdp_contrib().to_csv( save_dir + "/" + capture_date + "_get_gdp_contrib.csv", header=True, sep=",", index=False, ) ts.get_gdp_for().to_csv( save_dir + "/" + capture_date + "_get_gdp_for.csv", header=True, sep=",", index=False, ) ts.get_gdp_pull().to_csv( save_dir + "/" + capture_date + "_get_gdp_pull.csv", header=True, sep=",", index=False, ) ts.get_gdp_quarter().to_csv( save_dir + "/" + capture_date + "_get_gdp_quarter.csv", header=True, sep=",", index=False, ) print("get_gdp_ data capture completed!") # ts.get_gdp_year().to_csv(save_dir+'/'+capture_date+'_get_gdp_year.csv',header=True,sep=',',index=False) ts.get_gem_classified().to_csv( save_dir + "/" + capture_date + "_get_gem_classified.csv", header=True, sep=",", index=False, ) ts.get_gold_and_foreign_reserves().to_csv( save_dir + "/" + capture_date + "_get_gold_and_foreign_reserves.csv", header=True, sep=",", index=False, ) ts.get_growth_data(2018, 3).to_csv( save_dir + "/" + capture_date + "_get_growth_data.csv", header=True, sep=",", index=False, ) ts.get_industry_classified().to_csv( save_dir + "/" + capture_date + "_get_industry_classified.csv", header=True, sep=",", index=False, ) ts.get_hs300s().to_csv( save_dir + "/" + capture_date + "_get_hs300s.csv", header=True, sep=",", index=False, ) ts.get_sz50s().to_csv( save_dir + "/" + capture_date + "_get_sz50s.csv", header=True, sep=",", index=False, ) ts.get_zz500s().to_csv( save_dir + "/" + capture_date + "_get_zz500s.csv", header=True, sep=",", index=False, ) ts.get_operation_data(2018, 3).to_csv( save_dir + "/" + capture_date + "_get_operation_data.csv", header=True, sep=",", index=False, ) ts.get_stock_basics().to_csv( save_dir + "/" + capture_date + "_get_stock_basics.csv", header=True, sep=",", index=False, ) ts.get_report_data(2018, 3).to_csv( save_dir + "/" + capture_date + "_get_report_data.csv", header=True, sep=",", index=False, ) ts.inst_detail().to_csv( save_dir + "/" + capture_date + "_inst_detail.csv", header=True, sep=",", index=False, ) ts.inst_tops().to_csv( save_dir + "/" + capture_date + "_inst_tops.csv", header=True, sep=",", index=False, ) print("inst_tops data capture completed!") ts.new_stocks().to_csv( save_dir + "/" + capture_date + "_new_stocks.csv", header=True, sep=",", index=False, ) print("new_stocks data capture completed!") ts.top_list().to_csv( save_dir + "/" + capture_date + "_top_list.csv", header=True, sep=",", index=False, ) print("top_list data capture completed!")
def macrodata(start=None, end=None): """macroeconomics data : Shibor | Reserve Ratio | M2 | GDP | CPI | Loan Rate. the data start from 2006-10-08. Cause it is when the shibor data start on Tushare. parameters: --------- start: a string present a date indicates the return data start from. for example: '2011-01-22' end : refer to start return: -------- pandas.DataFrame """ T = __T T.rename(columns={'calendarDate': 'date'}, inplace=True) today = dt.today() today = dt.strftime(today, '%Y-%m-%d') T = T[T.date > '2006-04-01'] T = T[T.date <= today] loan = ts.get_loan_rate() #date loan_type rate loan = loan[loan.date > '2006-06-01'] rate = pd.DataFrame() for i in range(len(loan)): if loan.iloc[i].loan_type == '短期贷款(六个月以内)': rate = rate.append(loan.iloc[i][['date', 'rate']]) rrr = ts.get_rrr()[['date', 'now']] # 准备金率 rrr.rename(columns={'now': 'rrr'}, inplace=True) rrr = rrr[rrr.date > '2006-08-01'] dataScale = ['15', '09'] dataindex = 0 def makeDate(raw_date): raw_date = str(raw_date) raw_date = raw_date.split('.') if int(raw_date[1]) <= 9: raw_date[1] = '0' + raw_date[1] return raw_date[0] + '-' + raw_date[1] + '-' + dataScale[dataindex] def makeQuarter(raw_date): raw_date = str(raw_date) raw_date = raw_date.split('.') p = raw_date[1] q = {'1': '01', '2': '04', '3': '07', '4': '10'} return raw_date[0] + '-' + q[p] + '-' + '15' supply = ts.get_money_supply()[['month', 'm2_yoy']] #15th. supply.rename(columns={'month': 'date', 'm2_yoy': 'm2'}, inplace=True) if type(supply.iloc[1]['date']) == type(''): supply = supply[supply.date > '2006.6'] else: supply = supply[supply.date > 2006.6] supply['date'] = supply['date'].apply(makeDate) dataindex = dataindex + 1 m2 = supply gdp = ts.get_gdp_quarter()[['quarter', 'gdp_yoy']] # gdp will available at 15th. gdp.rename(columns={'quarter': 'date', 'gdp_yoy': 'gdp'}, inplace=True) if type(gdp.iloc[1]['date']) == type(''): gdp = gdp[gdp.date > '2006.1'] else: gdp = gdp[gdp.date > 2006.1] gdp['date'] = gdp['date'].apply(makeQuarter) cpi = ts.get_cpi() #month , cpi, available at 9th. cpi.rename(columns={'month': 'date'}, inplace=True) if type(cpi.iloc[1]['date']) == type(''): cpi = cpi[cpi.date > '2006.6'] else: cpi = cpi[cpi.date > 2006.6] cpi['date'] = cpi['date'].apply(makeDate) lastvalue = 0.0 def setValue(v): nonlocal lastvalue if pd.isnull(v) or v == 'None': return lastvalue else: lastvalue = v return lastvalue T = T.merge(cpi, on='date', how='left') lastvalue = cpi.iloc[-1]['cpi'] T['cpi'] = T['cpi'].apply(setValue) T = T.merge(gdp, on='date', how='left') lastvalue = gdp.iloc[-1]['gdp'] T['gdp'] = T['gdp'].apply(setValue) T = T.merge(m2, on='date', how='left') lastvalue = m2.iloc[-1]['m2'] T['m2'] = T['m2'].apply(setValue) T = T.merge(rrr, on='date', how='left') lastvalue = rrr.iloc[-1]['rrr'] T['rrr'] = T['rrr'].apply(setValue) T = T.merge(rate, on='date', how='left') lastvalue = rate.iloc[-1]['rate'] T['rate'] = T['rate'].apply(setValue) # T=shibor.merge(T,on='date',how='left') T = T[T.isOpen > 0.5] T = T[T.date >= '2006-10-08'] del T['isOpen'] if start and end: T = T[T.date >= start] T = T[T.date <= end] T[['rrr']] = T[['rrr']].astype(float) T[['m2']] = T[['m2']].astype(float) T[['rate']] = T[['rate']].astype(float) T[['gdp']] = T[['gdp']].astype(float) T[['cpi']] = T[['cpi']].astype(float) T = T.reset_index() del T['index'] return T
def call_gdp(): df = ts.get_gdp_quarter() return df
# 国内生产总值(季度) ''' 返回值说明: quarter :季度 gdp :国内生产总值(亿元) gdp_yoy :国内生产总值同比增长(%) pi :第一产业增加值(亿元) pi_yoy:第一产业增加值同比增长(%) si :第二产业增加值(亿元) si_yoy :第二产业增加值同比增长(%) ti :第三产业增加值(亿元) ti_yoy :第三产业增加值同比增长(%) ''' ts.get_gdp_quarter() # 三大需求对GDP贡献 ''' year :统计年度 end_for :最终消费支出贡献率(%) for_rate :最终消费支出拉动(百分点) asset_for :资本形成总额贡献率(%) asset_rate:资本形成总额拉动(百分点) goods_for :货物和服务净出口贡献率(%) goods_rate :货物和服务净出口拉动(百分点) ''' ts.get_gdp_for()
def job_5(): try: print("I'm working......宏观经济数据") # 存款利率 deposit_rate = ts.get_deposit_rate() data = pd.DataFrame(deposit_rate) data.to_sql('deposit_rate',engine,index=True,if_exists='replace') print("存款利率......done") # 贷款利率 loan_rate = ts.get_loan_rate() data = pd.DataFrame(loan_rate) data.to_sql('loan_rate',engine,index=True,if_exists='replace') print("贷款利率......done") # 存款准备金率 rrr = ts.get_rrr() data = pd.DataFrame(rrr) data.to_sql('rrr',engine,index=True,if_exists='replace') print("存款准备金率......done") # 货币供应量 money_supply = ts.get_money_supply() data = pd.DataFrame(money_supply) data.to_sql('money_supply',engine,index=True,if_exists='replace') print("货币供应量......done") # 货币供应量(年底余额) money_supply_bal = ts.get_money_supply_bal() data = pd.DataFrame(money_supply_bal) data.to_sql('money_supply_bal',engine,index=True,if_exists='replace') print("货币供应量(年底余额)......done") # 国内生产总值(年度) gdp_year = ts.get_gdp_year() data = pd.DataFrame(gdp_year) data.to_sql('gdp_year',engine,index=True,if_exists='replace') print("国内生产总值(年度)......done") # 国内生产总值(季度) gdp_quarter = ts.get_gdp_quarter() data = pd.DataFrame(gdp_quarter) data.to_sql('gdp_quarter',engine,index=True,if_exists='replace') print("国内生产总值(季度)......done") # 三大需求对GDP贡献 gdp_for = ts.get_gdp_for() data = pd.DataFrame(gdp_for) data.to_sql('gdp_for',engine,index=True,if_exists='replace') print("三大需求对GDP贡献......done") # 三大产业对GDP拉动 gdp_pull = ts.get_gdp_pull() data = pd.DataFrame(gdp_pull) data.to_sql('gdp_pull',engine,index=True,if_exists='replace') print("三大产业对GDP拉动......done") # 三大产业贡献率 gdp_contrib = ts.get_gdp_contrib() data = pd.DataFrame(gdp_contrib) data.to_sql('gdp_contrib',engine,index=True,if_exists='replace') print("三大产业贡献率......done") # 居民消费价格指数 cpi = ts.get_cpi() data = pd.DataFrame(cpi) data.to_sql('cpi',engine,index=True,if_exists='replace') print("居民消费价格指数......done") # 工业品出厂价格指数 ppi = ts.get_ppi() data = pd.DataFrame(ppi) data.to_sql('ppi',engine,index=True,if_exists='replace') print("工业品出厂价格指数......done") except Exception as e: print(e)
def setGdpQuarter(self, isSave=False, tableName=MACROECONOMIC_GDP_QUARTER): df = ts.get_gdp_quarter() if isSave is True: df.to_sql(tableName, self.engine_sql, if_exists='append') return df
def timefix(STR, N): if isinstance(STR, float): STR = str(STR) if (STR.find('.') != -1 and N == 1): STR = STR.replace('.', '/') STR += '/30' return STR if (STR.find('.') != -1 and N == 0): B = STR.split('.') B[1] = str(int(B[1]) * 3) return B[0] + '/' + B[1] + '/30' if (STR.find('-') != -1 and N == 2): STR = STR.replace('-', '/') return STR Ti = {'quarter': 0, 'month': 1, 'date': 2} test = tushare.get_gdp_quarter() i = 0 N = Ti[test.columns[0]] for M in test.ix[:, 0]: test.ix[i, 0] = timefix(test.ix[i, 0], N) i += 1
loan_rate=ts.get_loan_rate() loan_rate.to_csv('D:\\ts\\macro\\loan_rate.csv', encoding='gbk') rrr=ts.get_rrr() rrr.to_csv('D:\\ts\\macro\\rrr.csv', encoding='gbk') money_supply=ts.get_money_supply() money_supply.to_csv('D:\\ts\\macro\\money_supply.csv', encoding='gbk') money_supply_bal=ts.get_money_supply_bal() money_supply_bal.to_csv('D:\\ts\\macro\\money_supply_bal.csv', encoding='gbk') gdp_year=ts.get_gdp_year() gdp_year.to_csv('D:\\ts\\macro\\gdp_year.csv', encoding='gbk') gdp_quater=ts.get_gdp_quarter() gdp_quater.to_csv('D:\\ts\\macro\\gdp_quater.csv', encoding='gbk') gdp_for=ts.get_gdp_for() gdp_for.to_csv('D:\\ts\\macro\\gdp_for.csv', encoding='gbk') gdp_pull=ts.get_gdp_pull() gdp_pull.to_csv('D:\\ts\\macro\\gdp_pull.csv', encoding='gbk') gdp_contrib=ts.get_gdp_contrib() gdp_contrib.to_csv('D:\\ts\\macro\\gdp_contrib.csv', encoding='gbk') cpi=ts.get_cpi() cpi.to_csv('D:\\ts\\macro\\cpi.csv', encoding='gbk')
def Get_gdp_quarter(self): dt = ts.get_gdp_quarter() dt.to_csv('季度GDP.csv') print(dt)
def load_macro_economy(): # 下载存款利率 try: rs = ts.get_deposit_rate() pd.DataFrame.to_sql(rs, "deposit_rate", con=conn_macro_economy, flavor="mysql", if_exists="replace", index=True) print("下载存款利率ok") except: print("下载存款利率出错") # 下载贷款利率 try: rs = ts.get_loan_rate() pd.DataFrame.to_sql(rs, "loan_rate", con=conn_macro_economy, flavor="mysql", if_exists="replace", index=True) print("下载贷款利率ok") except: print("下载贷款利率出错") # 下载存款准备金率 try: rs = ts.get_rrr() pd.DataFrame.to_sql(rs, "rrr", con=conn_macro_economy, flavor="mysql", if_exists="replace", index=True) print("下载存款准备金率ok") except: print("下载存款准备金率出错") # 下载货币供应量 try: rs = ts.get_money_supply() pd.DataFrame.to_sql(rs, "money_supply", con=conn_macro_economy, flavor="mysql", if_exists="replace", index=True) print("下载货币供应量ok") except: print("下载货币供应量出错") # 下载货币供应量(年底余额) try: rs = ts.get_money_supply_bal() pd.DataFrame.to_sql( rs, "money_supply_bal", con=conn_macro_economy, flavor="mysql", if_exists="replace", index=True ) print("下载货币供应量(年底余额)ok") except: print("下载货币供应量(年底余额)出错") # 下载国内生产总值(年度) try: rs = ts.get_gdp_year() pd.DataFrame.to_sql(rs, "gdp_year", con=conn_macro_economy, flavor="mysql", if_exists="replace", index=True) print("下载国内生产总值(年度)ok") except: print("下载国内生产总值(年度)出错") # 下载国内生产总值(季度) try: rs = ts.get_gdp_quarter() pd.DataFrame.to_sql(rs, "gdp_quarter", con=conn_macro_economy, flavor="mysql", if_exists="replace", index=True) print("下载国内生产总值(季度)ok") except: print("下载国内生产总值(季度)出错") # 下载三大需求对GDP贡献 try: rs = ts.get_gdp_for() pd.DataFrame.to_sql(rs, "gdp_for", con=conn_macro_economy, flavor="mysql", if_exists="replace", index=True) print("下载三大需求对GDP贡献ok") except: print("下载三大需求对GDP贡献出错") # 下载三大产业对GDP拉动 try: rs = ts.get_gdp_pull() pd.DataFrame.to_sql(rs, "gdp_pull", con=conn_macro_economy, flavor="mysql", if_exists="replace", index=True) print("下载三大产业对GDP拉动ok") except: print("下载三大产业对GDP拉动出错") # 下载三大产业贡献率 try: rs = ts.get_gdp_contrib() pd.DataFrame.to_sql(rs, "gdp_contrib", con=conn_macro_economy, flavor="mysql", if_exists="replace", index=True) print("下载三大产业贡献率ok") except: print("下载三大产业贡献率出错") # 下载居民消费价格指数 try: rs = ts.get_cpi() pd.DataFrame.to_sql(rs, "gdp_cpi", con=conn_macro_economy, flavor="mysql", if_exists="replace", index=True) print("下载居民消费价格指数ok") except: print("下载居民消费价格指数出错") # 下载工业品出厂价格指数 try: rs = ts.get_ppi() pd.DataFrame.to_sql(rs, "gdp_ppi", con=conn_macro_economy, flavor="mysql", if_exists="replace", index=True) print("下载工业品出厂价格指数ok") except: print("下载工业品出厂价格指数出错")