Example #1
0
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
Example #2
0
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
Example #3
0
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
Example #4
0
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
Example #5
0
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
Example #6
0
"""
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())
Example #7
0
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
Example #8
0
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
Example #9
0
    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())