def update_capitalchange(ser): """ :param ser: server,local or both :return: """ sql_last = "select `变动日期` from `capitalchange` ORDER BY `变动日期` DESC limit 1" lastdate = pd.read_sql(sql_last, localconn()).values[0][0] # print(lastdate) Errorlist = [] sqli = "INSERT IGNORE INTO `capitalchange`(`股票代码`, `变动日期`, `变动原因`, `总股本_变动`, `流通A股_变动`, " \ "`流通B股_变动`, `总股本_前值`, `流通A股_前值`, `流通B股_前值`, `总股本`, `流通A股`, `流通B股`) VALUES " \ "(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)" table = pd.read_csv(path() + "/data/dzhdata/capitalchange.csv", dtype='object') table['变动日期'] = pd.to_datetime(table['变动日期']) # print(table.dtypes) table = table[table['变动日期'] > lastdate].values # print(table) # with open(path() + "/data/dzhdata/capitalchange.csv", encoding='utf-8') as f: # f_csv = csv.DictReader(f) for elem in table: try: # param = (row['股票代码'], row['变动日期'],row['变动原因'],row['总股本_变动'],row['流通A股_变动'], # row['流通B股_变动'],row['总股本_前值'], row['流通A股_前值'], row['流通B股_前值'], row['总股本'], # row['流通A股'], row['流通B股']) # print(param) param = [str(elem[i]) for i in range(len(elem))] if ser == "server": conn = serverconn() cur = conn.cursor() cur.execute(sqli, tuple(param)) conn.commit() elif ser == "local": conn = localconn() cur = conn.cursor() cur.execute(sqli, tuple(param)) conn.commit() else: conn1 = serverconn() cur = conn1.cursor() cur.execute(sqli, tuple(param)) conn1.commit() conn2 = localconn() cur = conn2.cursor() cur.execute(sqli, tuple(param)) conn2.commit() except Exception as e: print(param[0], e) Errorlist.append((param[0], e)) # f.close() return Errorlist
def financial_rank(date): sql="select * from `financial` WHERE `报表日期`='%s'"%(date) df = pd.read_sql(sql,localconn()) df['p1'] =(df['每股资本公积金']+df['每股未分配利润'])/df['每股主营收入'] df = df.sort_values(by=['p1'], ascending=False) df['p1rank'] = pd.Series(np.arange(len(df['代码'])) + 1, index=df.index) df['可持续评分'] = 10/len(df)*(len(df)+1-df['p1rank']) df = df.sort_values(by=['主营业务收入增长率'], ascending=False) df['主营业务收入增长率rank'] = pd.Series(np.arange(len(df['代码'])) + 1, index=df.index) df['主营业务收入增长率评分'] = 10/len(df)*(len(df)+1-df['主营业务收入增长率rank']) df = df.sort_values(by=['净利润增长率'], ascending=False) df['净利润增长率rank'] = pd.Series(np.arange(len(df['代码'])) + 1, index=df.index) df['净利润增长率评分'] = 10/len(df)*(len(df)+1-df['净利润增长率rank']) df['成长评分']=(df['净利润增长率评分']+df['主营业务收入增长率评分'])/2 df = df.sort_values(by=['三年平均净资收益率'], ascending=False) df['三年平均净资收益率rank'] = pd.Series(np.arange(len(df['代码'])) + 1, index=df.index) df['稳定性评分'] = 10/len(df)*(len(df)+1-df['三年平均净资收益率rank']) df = df.sort_values(by=['销售净利率'], ascending=False) df['销售净利率rank'] = pd.Series(np.arange(len(df['代码'])) + 1, index=df.index) df['产品评分'] = 10/len(df)*(len(df)+1-df['销售净利率rank']) df = df.sort_values(by=['三项费用比重'], ascending=True) df['三项费用比重rank'] = pd.Series(np.arange(len(df['代码'])) + 1, index=df.index) df['经营评分'] = 10/len(df)*(len(df)+1-df['三项费用比重rank']) df = df.sort_values(by=['应收账款周转天数'], ascending=True) df['应收账款周转天数rank'] = pd.Series(np.arange(len(df['代码'])) + 1, index=df.index) df['收款评分'] = 10/len(df)*(len(df)+1-df['应收账款周转天数rank']) df = df.sort_values(by=['资产负债率'], ascending=True) df['资产负债率rank'] = pd.Series(np.arange(len(df['代码'])) + 1, index=df.index) df['资产评分'] = 10/len(df)*(len(df)+1-df['资产负债率rank']) df['总评分']=df['可持续评分']+df['成长评分']*4+df['稳定性评分']+df['产品评分']+df['经营评分']+df['收款评分']+df['资产评分'] df=df[['代码','名称','报表日期','可持续评分','成长评分','稳定性评分','产品评分','经营评分','收款评分','资产评分','总评分']] # df.to_sql('financial_rank',localconn(),flavor='mysql',schema='stockdata',if_exists='append',index=False) return df
def update_dzhcontrol(ser): """ :param ser: server,local or both :return: """ Errorlist = [] sqli = "UPDATE `basedata` SET `实际控制人名称` = %s, `实际控制人类型` = %s,`央企控制人名称`=%s,`控股股东名称`=%s,`控股股东类型`=%s WHERE `basedata`.`证券代码` = %s ;" with open(path() + "/data/dzhdata/control.csv", encoding='utf-8') as f: f_csv = csv.DictReader(f) for row in f_csv: try: print(row['证券代码'], row['实际控制人名称'], row['实际控制人类型'], row['央企控制人名称'], row['控股股东名称'], row['控股股东类型']) if ser == "server": conn = serverconn() cur = conn.cursor() cur.execute( sqli, (row['实际控制人名称'], row['实际控制人类型'], row['央企控制人名称'], row['控股股东名称'], row['控股股东类型'], row['证券代码'])) conn.commit() elif ser == "local": conn = localconn() cur = conn.cursor() cur.execute( sqli, (row['实际控制人名称'], row['实际控制人类型'], row['央企控制人名称'], row['控股股东名称'], row['控股股东类型'], row['证券代码'])) conn.commit() else: conn1 = serverconn() cur = conn1.cursor() cur.execute( sqli, (row['实际控制人名称'], row['实际控制人类型'], row['央企控制人名称'], row['控股股东名称'], row['控股股东类型'], row['证券代码'])) conn1.commit() conn2 = localconn() cur = conn2.cursor() cur.execute( sqli, (row['实际控制人名称'], row['实际控制人类型'], row['央企控制人名称'], row['控股股东名称'], row['控股股东类型'], row['证券代码'])) conn2.commit() except Exception as e: print(row['证券代码'], e) Errorlist.append((row['证券代码'], e)) f.close() return Errorlist
def update_stocklist(ser='both'): table = pd.read_csv(path() + "/data/dzhdata/stocklist.csv", dtype='object').values stocklist = pd.read_sql("select * from `stocklist`", localconn())['证券简称'].values Errorlist = [] for row in table: if row[1] in stocklist: pass else: print(row[1]) sql = "update `stocklist` set `证券简称`=%s,`拼音缩写`=%s WHERE `证券代码`=%s" pinyin = getpinyin(row[1]) pinyin = pinyin if '银行' not in row[1] else pinyin.replace( 'YX', 'YH') param = [row[1], pinyin, row[0]] print(param) # try: if ser == "server": conn = serverconn() cur = conn.cursor() cur.execute(sql, tuple(param)) conn.commit() elif ser == "local": conn = localconn() cur = conn.cursor() cur.execute(sql, tuple(param)) conn.commit() else: conn1 = serverconn() cur = conn1.cursor() cur.execute(sql, tuple(param)) conn1.commit() conn2 = localconn() cur = conn2.cursor() cur.execute(sql, tuple(param)) conn2.commit() # except Exception as e: # print(param[0], e) # Errorlist.append((param[0], e)) return Errorlist
def update_financial(filename,conn=localconn()): file_path = path()+"/data/dzhfinancial/"+filename+".csv" df_data = pd.read_csv(file_path,encoding='gbk',dtype='object') list_data=df_data.values errorlist = [] for i in range(len(list_data)): sql = "INSERT IGNORE INTO `financial`(`名称`, `报表日期`, `代码`, `摊薄每股收益`, `净资产收益率`, `每股经营活动现金流量`, `每股净资产`, `每股资本公积金`, `每股未分配利润`, `每股主营收入`, `扣除非经常损益每股收益`, `货币资金`, `交易性金融资产`, `应收票据`, `应收账款`, `预付款项`, `应收利息`, `应收股利`, `其他应收款`, `应收关联公司款`, `存货`, `消耗性生物资产`, `一年内到期的非流动资产`, `其他流动资产`, `流动资产合计`, `可供出售金融资产`, `持有至到期投资`, `长期应收款`, `长期股权投资`, `投资性房地产`, `固定资产`, `在建工程`, `工程物资`, `固定资产清理`, `生产性生物资产`, `油气资产`, `无形资产`, `开发支出`, `商誉`, `长期待摊费用`, `递延所得税资产`, `其他非流动资产`, `非流动资产合计`, `资产总计`, `短期借款`, `交易性金融负债`, `应付票据`, `应付账款`, `预收账款`, `应付职工薪酬`, `应交税费`, `应付利息`, `应付股利`, `其他应付款`, `应付关联公司款`, `一年内到期的非流动负债`, `其他流动负债`, `流动负债合计`, `长期借款`, `应付债券`, `长期应付款`, `专项应付款`, `预计负债`, `递延所得税负债`, `其他非流动负债`, `非流动负债合计`, `负债合计`, `实收资本或股本`, `资本公积`, `库存股`, `盈余公积`, `未分配利润`, `外币报表折算差额`, `非正常经营项目收益调整`, `股东权益合计不含少数股东权益`, `少数股东权益`, `股东权益合计含少数股东权益`, `负债和股东权益合计`, `营业收入`, `营业成本`, `营业税金及附加`, `销售费用`, `管理费用`, `堪探费用`, `财务费用z`, `资产减值损失`, `公允价值变动净收益`, `投资收益`, `对联合营企业的投资收益`, `影响营业利润的其他科目`, `营业利润`, `补贴收入`, `营业外收入`, `营业外支出`, `非流动资产处置净损失`, `影响利润总额的其他科目`, `利润总额`, `所得税费用`, `影响净利润的其他科目`, `净利润含少数股东损益`, `净利润不含少数股东损益`, `少数股东损益`, `销售商品、提供劳务收到的现金`, `收到的税费返还`, `收到的其他与经营活动有关的现金`, `经营活动现金流入小计`, `购买商品、接受劳务支付的现金`, `支付给职工以及为职工支付的现金`, `支付的各项税费`, `支付的其他与经营活动有关的现金`, `经营活动现金流出小计`, `经营活动产生的现金流量净额`, `收回投资所收到的现金`, `取得投资收益所收到的现金`, `处置固定、无形和其他长期资产收回的现金净额`, `处置子公司及其他营业单位收到的现金净额`, `收到的其他与投资活动有关的现金`, `投资活动现金流入小计`, `购建固定资产、无形资产和其他长期资产支付的现金`, `投资所支付的现金`, `取得子公司及其他营业单位支付的现金净额`, `支付其他与投资活动有关的现金`, `投资活动现金流出小计`, `投资活动产生的现金流量净额`, `吸收投资所收到的现金`, `子公司吸收少数股东权益性投资收到的现金`, `取得借款收到的现金`, `收到其他与筹资活动有关的现金`, `筹资活动现金流入小计`, `偿还债务支付的现金`, `分配股利、利润或偿付利息支付的现金`, `子公司支给付少数股东的股利、利润`, `支付其他与筹资活动有关的现金`, `筹资活动现金流出小计`, `筹资活动产生的现金流量净额`, `汇率变动对现金的影响`, `其他原因对现金的影响`, `现金及现金等价物净增加额`, `期初现金及现金等价物余额`, `期末现金及现金等价物余额`, `净利润`, `加:资产减值准备`, `固定资产折旧、油气资产折耗、生产性生物资产折旧`, `无形资产摊销`, `长期待摊费用摊销`, `处置固定资产、无形资产和其他长期资产的损失`, `固定资产报废损失`, `公允价值变动损失`, `财务费用l`, `投资损失`, `递延所得税资产减少`, `递延所得税负债增加`, `存货的减少`, `经营性应收项目的减少`, `经营性应付项目的增加`, `其他`, `债务转为资本`, `一年内到期的可转换公司债券`, `融资租入固定资产`, `现金的期末余额`, `现金的期初余额`, `现金等价物的期末余额`, `现金等价物的期初余额`, `流动比率`, `速动比率`, `现金比率`, `负债权益比率`, `股东权益比率1`, `股东权益对负债比率`, `权益乘数`, `长期债务与营运资金比`, `长期负债比率1`, `利息支付倍数`, `股东权益与固定资产比`, `固定资产对长期负债比`, `有形净值债务率`, `清算价值比率`, `债务保障率`, `现金流量比率`, `每股有形资产净值`, `每股营运资金`, `债务总额EBITDA`, `营业周期`, `存货周转天数`, `应收账款周转天数`, `流动资产周转天数`, `总资产周转天数`, `存货周转率`, `应收账款周转率`, `流动资产周转率`, `固定资产周转率`, `总资产周转率`, `净资产周转率`, `股东权益周转率`, `营运资金周转率`, `存货同比增长率`, `应收帐款同比增长率`, `主营业务收入增长率`, `营业利润增长率`, `利润总额增长率`, `净利润增长率`, `净资产增长率`, `流动资产增长率`, `固定资产增长率`, `总资产增长率`, `摊薄每股收益增长率`, `每股净资产增长率`, `每股经营性现金流量增长率`, `三年平均净资收益率`, `总资产净利润率`, `投入资本回报率ROIC`, `成本费用利润率`, `营业利润率`, `主营业务成本率`, `销售净利率`, `总资产报酬率`, `销售毛利率`, `三项费用比重`, `营业费用率`, `管理费用率`, `财务费用率`, `非主营比重`, `营业利润比重`, `每股息税折旧摊销前利润`, `每股息税前利润EBIT`, `EBITDA主营业务收入`, `资产负债率`, `股东权益比率`, `长期负债比率`, `股东权益与固定资产比率`, `负债与所有者权益比率`, `长期资产与长期资金比率`, `资本化比率`, `资本固定化比率`, `固定资产比重`, `经营现金净流量对销售收入比率`, `资产的经营现金流量回报率`, `经营现金净流量与净利润的比率`, `经营现金净流量对负债比率`, `每股营业现金流量`, `每股经营活动现金流量净额`, `每股投资活动产生现金流量净额`, `每股筹资活动产生现金流量净额`, `每股现金及现金等价物净增加额`, `现金流量满足率`, `现金营运指数`) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)" sql_param =tuple(list_data[i]) with conn as con: try: con.execute(sql,sql_param) except Exception as e: errorlist.append(e) print(e) return errorlist
""" Created on Fri DEC 1 15:20:00 2017 " @author: kplam """ from kpfunc.getdata import localconn,serverconn from kpfunc.function import path import pandas as pd def update_financial(filename,conn=localconn()): file_path = path()+"/data/dzhfinancial/"+filename+".csv" df_data = pd.read_csv(file_path,encoding='gbk',dtype='object') list_data=df_data.values errorlist = [] for i in range(len(list_data)): sql = "INSERT IGNORE INTO `financial`(`名称`, `报表日期`, `代码`, `摊薄每股收益`, `净资产收益率`, `每股经营活动现金流量`, `每股净资产`, `每股资本公积金`, `每股未分配利润`, `每股主营收入`, `扣除非经常损益每股收益`, `货币资金`, `交易性金融资产`, `应收票据`, `应收账款`, `预付款项`, `应收利息`, `应收股利`, `其他应收款`, `应收关联公司款`, `存货`, `消耗性生物资产`, `一年内到期的非流动资产`, `其他流动资产`, `流动资产合计`, `可供出售金融资产`, `持有至到期投资`, `长期应收款`, `长期股权投资`, `投资性房地产`, `固定资产`, `在建工程`, `工程物资`, `固定资产清理`, `生产性生物资产`, `油气资产`, `无形资产`, `开发支出`, `商誉`, `长期待摊费用`, `递延所得税资产`, `其他非流动资产`, `非流动资产合计`, `资产总计`, `短期借款`, `交易性金融负债`, `应付票据`, `应付账款`, `预收账款`, `应付职工薪酬`, `应交税费`, `应付利息`, `应付股利`, `其他应付款`, `应付关联公司款`, `一年内到期的非流动负债`, `其他流动负债`, `流动负债合计`, `长期借款`, `应付债券`, `长期应付款`, `专项应付款`, `预计负债`, `递延所得税负债`, `其他非流动负债`, `非流动负债合计`, `负债合计`, `实收资本或股本`, `资本公积`, `库存股`, `盈余公积`, `未分配利润`, `外币报表折算差额`, `非正常经营项目收益调整`, `股东权益合计不含少数股东权益`, `少数股东权益`, `股东权益合计含少数股东权益`, `负债和股东权益合计`, `营业收入`, `营业成本`, `营业税金及附加`, `销售费用`, `管理费用`, `堪探费用`, `财务费用z`, `资产减值损失`, `公允价值变动净收益`, `投资收益`, `对联合营企业的投资收益`, `影响营业利润的其他科目`, `营业利润`, `补贴收入`, `营业外收入`, `营业外支出`, `非流动资产处置净损失`, `影响利润总额的其他科目`, `利润总额`, `所得税费用`, `影响净利润的其他科目`, `净利润含少数股东损益`, `净利润不含少数股东损益`, `少数股东损益`, `销售商品、提供劳务收到的现金`, `收到的税费返还`, `收到的其他与经营活动有关的现金`, `经营活动现金流入小计`, `购买商品、接受劳务支付的现金`, `支付给职工以及为职工支付的现金`, `支付的各项税费`, `支付的其他与经营活动有关的现金`, `经营活动现金流出小计`, `经营活动产生的现金流量净额`, `收回投资所收到的现金`, `取得投资收益所收到的现金`, `处置固定、无形和其他长期资产收回的现金净额`, `处置子公司及其他营业单位收到的现金净额`, `收到的其他与投资活动有关的现金`, `投资活动现金流入小计`, `购建固定资产、无形资产和其他长期资产支付的现金`, `投资所支付的现金`, `取得子公司及其他营业单位支付的现金净额`, `支付其他与投资活动有关的现金`, `投资活动现金流出小计`, `投资活动产生的现金流量净额`, `吸收投资所收到的现金`, `子公司吸收少数股东权益性投资收到的现金`, `取得借款收到的现金`, `收到其他与筹资活动有关的现金`, `筹资活动现金流入小计`, `偿还债务支付的现金`, `分配股利、利润或偿付利息支付的现金`, `子公司支给付少数股东的股利、利润`, `支付其他与筹资活动有关的现金`, `筹资活动现金流出小计`, `筹资活动产生的现金流量净额`, `汇率变动对现金的影响`, `其他原因对现金的影响`, `现金及现金等价物净增加额`, `期初现金及现金等价物余额`, `期末现金及现金等价物余额`, `净利润`, `加:资产减值准备`, `固定资产折旧、油气资产折耗、生产性生物资产折旧`, `无形资产摊销`, `长期待摊费用摊销`, `处置固定资产、无形资产和其他长期资产的损失`, `固定资产报废损失`, `公允价值变动损失`, `财务费用l`, `投资损失`, `递延所得税资产减少`, `递延所得税负债增加`, `存货的减少`, `经营性应收项目的减少`, `经营性应付项目的增加`, `其他`, `债务转为资本`, `一年内到期的可转换公司债券`, `融资租入固定资产`, `现金的期末余额`, `现金的期初余额`, `现金等价物的期末余额`, `现金等价物的期初余额`, `流动比率`, `速动比率`, `现金比率`, `负债权益比率`, `股东权益比率1`, `股东权益对负债比率`, `权益乘数`, `长期债务与营运资金比`, `长期负债比率1`, `利息支付倍数`, `股东权益与固定资产比`, `固定资产对长期负债比`, `有形净值债务率`, `清算价值比率`, `债务保障率`, `现金流量比率`, `每股有形资产净值`, `每股营运资金`, `债务总额EBITDA`, `营业周期`, `存货周转天数`, `应收账款周转天数`, `流动资产周转天数`, `总资产周转天数`, `存货周转率`, `应收账款周转率`, `流动资产周转率`, `固定资产周转率`, `总资产周转率`, `净资产周转率`, `股东权益周转率`, `营运资金周转率`, `存货同比增长率`, `应收帐款同比增长率`, `主营业务收入增长率`, `营业利润增长率`, `利润总额增长率`, `净利润增长率`, `净资产增长率`, `流动资产增长率`, `固定资产增长率`, `总资产增长率`, `摊薄每股收益增长率`, `每股净资产增长率`, `每股经营性现金流量增长率`, `三年平均净资收益率`, `总资产净利润率`, `投入资本回报率ROIC`, `成本费用利润率`, `营业利润率`, `主营业务成本率`, `销售净利率`, `总资产报酬率`, `销售毛利率`, `三项费用比重`, `营业费用率`, `管理费用率`, `财务费用率`, `非主营比重`, `营业利润比重`, `每股息税折旧摊销前利润`, `每股息税前利润EBIT`, `EBITDA主营业务收入`, `资产负债率`, `股东权益比率`, `长期负债比率`, `股东权益与固定资产比率`, `负债与所有者权益比率`, `长期资产与长期资金比率`, `资本化比率`, `资本固定化比率`, `固定资产比重`, `经营现金净流量对销售收入比率`, `资产的经营现金流量回报率`, `经营现金净流量与净利润的比率`, `经营现金净流量对负债比率`, `每股营业现金流量`, `每股经营活动现金流量净额`, `每股投资活动产生现金流量净额`, `每股筹资活动产生现金流量净额`, `每股现金及现金等价物净增加额`, `现金流量满足率`, `现金营运指数`) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)" sql_param =tuple(list_data[i]) with conn as con: try: con.execute(sql,sql_param) except Exception as e: errorlist.append(e) print(e) return errorlist if __name__ == '__main__' : error = update_financial('20180212',conn=localconn())
def update_incentive(ser): """ :param ser: server,local or both :return: """ sql_last = "select `薪酬委员会预案公告日` from `incentive` ORDER BY `薪酬委员会预案公告日` DESC limit 1" lastdate = pd.read_sql(sql_last, localconn()).values[0][0] Errorlist = [] sqli = "INSERT IGNORE INTO `incentive`(`股票代码`, `本期计划制定年度`, `本期计划激励次数`, `方案进度`, `激励标的物`, " \ "`标的股票来源`, `激励总数_万`, `激励总数占当时总股本的比例`, `计划授权授予股票价格`, `本期计划有效期_年`, " \ "`股权激励授予条件说明`, `薪酬委员会预案公告日`, `董事会修订方案日`, `股东大会通过日`, `独立财务顾问`, `律师事务所`," \ " `备注`) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)" table = pd.read_csv(path() + "/data/dzhdata/incentive.csv", dtype='object') # print(table) table['薪酬委员会预案公告日'] = pd.to_datetime(table['薪酬委员会预案公告日']) # print(table.dtypes) table = table[table['薪酬委员会预案公告日'] > lastdate] if ser == "local" or ser == "both": table.to_sql('incentive', localconn(), flavor='mysql', schema='stockdata', index=False, if_exists='append') if ser == "server" or ser == "both": table.to_sql('incentive', serverconn(), flavor='mysql', schema='stockdata', index=False, if_exists='append') # with open(path() + "/data/dzhdata/incentive.csv", encoding='utf-8') as f: # f_csv = csv.DictReader(f) # for elem in table: # try: # # param = (row['股票代码'], row['本期计划制定年度'], row['本期计划激励次数'], row['方案进度'], row['激励标的物'], # # row['标的股票来源'], row['激励总数_万'], row['激励总数占当时总股本的比例'], row['计划授权授予股票价格'], # # row['本期计划有效期_年'], row['股权激励授予条件说明'], row['薪酬委员会预案公告日'], row['董事会修订方案日'], # # row['股东大会通过日'], row['独立财务顾问'], row['律师事务所'], row['备注']) # param = [str(elem[i]) for i in range(len(elem))] # # if ser == "server": # conn = serverconn() # cur = conn.cursor() # cur.execute(sqli, tuple(param)) # conn.commit() # elif ser == "local": # conn = localconn() # cur = conn.cursor() # cur.execute(sqli, tuple(param)) # conn.commit() # else: # conn1 = serverconn() # cur = conn1.cursor() # cur.execute(sqli, tuple(param)) # conn1.commit() # conn2 = localconn() # cur = conn2.cursor() # cur.execute(sqli, tuple(param)) # conn2.commit() # except Exception as e: # print(param[0],e) # Errorlist.append((param[0], e)) # # f.close() return Errorlist
def update_buyback(ser): """ :param ser: server,local or both :return: """ sql_last = "select `董事会通过日` from `buyback` ORDER BY `董事会通过日` DESC limit 1" lastdate = pd.read_sql(sql_last, localconn()).values[0][0] Errorlist = [] # sqli="insert ignore into `buyback`(`证劵代码`, `方案进度`, `董事会通过日`, `股东大会通过日`, `国资委通过日`, " \ # "`证监会通过日`, `回购资金上限_CNY`, `回购价格上限_CNY`, `回购股份预计_万`, `占总股本`, `占实际流通股`, `股份种类`," \ # " `回购资金来源`, `回购股份方式`, `回购股份实施期限`, `备注`) VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)" table = pd.read_csv(path() + "/data/dzhdata/buyback.csv", dtype='object') # print(table) table['董事会通过日'] = pd.to_datetime(table['董事会通过日']) # print(table.dtypes) table = table[table['董事会通过日'] > lastdate].values table = pd.DataFrame(table, columns=[ '证劵代码', '方案进度', '董事会通过日', '股东大会通过日', '国资委通过日', '证监会通过日', '回购资金上限_CNY', '回购价格上限_CNY', '回购股份预计_万', '占总股本', '占实际流通股', '股份种类', '回购资金来源', '回购股份方式', '回购股份实施期限', '备注' ]) table['董事会通过日'] = pd.to_datetime(table['董事会通过日']) table['回购资金上限_CNY'] = table['回购资金上限_CNY'].astype('float') table['回购价格上限_CNY'] = table['回购价格上限_CNY'].astype('float') table['回购股份预计_万'] = table['回购股份预计_万'].astype('float') table['占实际流通股'] = table['占实际流通股'].astype('float') table['占总股本'] = table['占总股本'].astype('float') print(table.dtypes) print(table) # with open(path() + "/data/dzhdata/buyback.csv", encoding='utf-8') as f: # f_csv = csv.DictReader(f) if ser == "local" or ser == "both": table.to_sql('buyback', localconn(), flavor='mysql', schema='stockdata', index=False, if_exists='append') if ser == "server" or ser == "both": table.to_sql('buyback', serverconn(), flavor='mysql', schema='stockdata', index=False, if_exists='append') # for param in table: # try: # # param = (row['证劵代码'], row['方案进度'], row['董事会通过日'], row['股东大会通过日'], row['国资委通过日'], # # row['证监会通过日'], row['回购资金上限_CNY'], row['回购价格上限_CNY'], row['回购股份预计_万'], # # row['占总股本'], row['占实际流通股'],row['股份种类'],row['回购资金来源'],row['回购股份方式'], # # row['回购股份实施期限'],row['备注']) # # param = [str(elem[i]) for i in range(len(elem))] # if ser == "server": # conn = serverconn() # cur = conn.cursor() # cur.execute(sqli,tuple(param)) # conn.commit() # elif ser == "local": # conn = localconn() # cur = conn.cursor() # cur.execute(sqli, tuple(param)) # conn.commit() # else: # conn1 = serverconn() # cur = conn1.cursor() # cur.execute(sqli, tuple(param)) # conn1.commit() # conn2 = localconn() # cur = conn2.cursor() # cur.execute(sqli, tuple(param)) # conn2.commit() # except Exception as e: # print(param[0],e) # Errorlist.append((param[0], e)) # f.close() return Errorlist
df['成长评分']=(df['净利润增长率评分']+df['主营业务收入增长率评分'])/2 df = df.sort_values(by=['三年平均净资收益率'], ascending=False) df['三年平均净资收益率rank'] = pd.Series(np.arange(len(df['代码'])) + 1, index=df.index) df['稳定性评分'] = 10/len(df)*(len(df)+1-df['三年平均净资收益率rank']) df = df.sort_values(by=['销售净利率'], ascending=False) df['销售净利率rank'] = pd.Series(np.arange(len(df['代码'])) + 1, index=df.index) df['产品评分'] = 10/len(df)*(len(df)+1-df['销售净利率rank']) df = df.sort_values(by=['三项费用比重'], ascending=True) df['三项费用比重rank'] = pd.Series(np.arange(len(df['代码'])) + 1, index=df.index) df['经营评分'] = 10/len(df)*(len(df)+1-df['三项费用比重rank']) df = df.sort_values(by=['应收账款周转天数'], ascending=True) df['应收账款周转天数rank'] = pd.Series(np.arange(len(df['代码'])) + 1, index=df.index) df['收款评分'] = 10/len(df)*(len(df)+1-df['应收账款周转天数rank']) df = df.sort_values(by=['资产负债率'], ascending=True) df['资产负债率rank'] = pd.Series(np.arange(len(df['代码'])) + 1, index=df.index) df['资产评分'] = 10/len(df)*(len(df)+1-df['资产负债率rank']) df['总评分']=df['可持续评分']+df['成长评分']*4+df['稳定性评分']+df['产品评分']+df['经营评分']+df['收款评分']+df['资产评分'] df=df[['代码','名称','报表日期','可持续评分','成长评分','稳定性评分','产品评分','经营评分','收款评分','资产评分','总评分']] # df.to_sql('financial_rank',localconn(),flavor='mysql',schema='stockdata',if_exists='append',index=False) return df if __name__ == '__main__': sql="select distinct `报表日期` from `financial`" datelist=pd.read_sql(sql,localconn())['报表日期'].values for date in datelist: financial_rank(str(date)) # sql="select * from `financial_rank`" # df = pd.read_sql(sql,localconn()) # print(df['总评分'].mean()) # print(df['总评分'].median()) # print(df['总评分'].std())