예제 #1
0
def get_report_data(year, quarter):
    """
        获取业绩报表数据
    Parameters
    --------
    year:int 年度 e.g:2014
    quarter:int 季度 :1、2、3、4,只能输入这4个季度
       说明:由于是从网站获取的数据,需要一页页抓取,速度取决于您当前网络速度
       
    Return
    --------
    DataFrame
        code,代码
        name,名称
        eps,每股收益
        eps_yoy,每股收益同比(%)
        bvps,每股净资产
        roe,净资产收益率(%)
        epcf,每股现金流量(元)
        net_profits,净利润(万元)
        profits_yoy,净利润同比(%)
        distrib,分配方案
        report_date,发布日期
    """
    if ct._check_input(year,quarter) is True:
        ct._write_head()
        df =  _get_report_data(year, quarter, 1, pd.DataFrame())
        if df is not None:
#             df = df.drop_duplicates('code')
            df['code'] = df['code'].map(lambda x:str(x).zfill(6))
        return df
예제 #2
0
def get_debtpaying_data(year, quarter):
    """
        获取偿债能力数据
    Parameters
    --------
    year:int 年度 e.g:2014
    quarter:int 季度 :1、2、3、4,只能输入这4个季度
       说明:由于是从网站获取的数据,需要一页页抓取,速度取决于您当前网络速度
       
    Return
    --------
    DataFrame
        code,代码
        name,名称
        currentratio,流动比率
        quickratio,速动比率
        cashratio,现金比率
        icratio,利息支付倍数
        sheqratio,股东权益比率
        adratio,股东权益增长率
    """
    if ct._check_input(year, quarter) is True:
        ct._write_head()
        df =  _get_debtpaying_data(year, quarter, 1, pd.DataFrame())
        if df is not None:
#             df = df.drop_duplicates('code')
            df['code'] = df['code'].map(lambda x:str(x).zfill(6))
        return df
예제 #3
0
def get_cashflow_data(year, quarter):
    """
        获取现金流量数据
    Parameters
    --------
    year:int 年度 e.g:2014
    quarter:int 季度 :1、2、3、4,只能输入这4个季度
       说明:由于是从网站获取的数据,需要一页页抓取,速度取决于您当前网络速度
       
    Return
    --------
    DataFrame
        code,代码
        name,名称
        cf_sales,经营现金净流量对销售收入比率
        rateofreturn,资产的经营现金流量回报率
        cf_nm,经营现金净流量与净利润的比率
        cf_liabilities,经营现金净流量对负债比率
        cashflowratio,现金流量比率
    """
    if ct._check_input(year, quarter) is True:
        ct._write_head()
        df =  _get_cashflow_data(year, quarter, 1, pd.DataFrame())
        if df is not None:
#             df = df.drop_duplicates('code')
            df['code'] = df['code'].map(lambda x:str(x).zfill(6))
        return df
예제 #4
0
def get_operation_data(year, quarter):
    """
        获取营运能力数据
    Parameters
    --------
    year:int 年度 e.g:2014
    quarter:int 季度 :1、2、3、4,只能输入这4个季度
       说明:由于是从网站获取的数据,需要一页页抓取,速度取决于您当前网络速度
       
    Return
    --------
    DataFrame
        code,代码
        name,名称
        arturnover,应收账款周转率(次)
        arturndays,应收账款周转天数(天)
        inventory_turnover,存货周转率(次)
        inventory_days,存货周转天数(天)
        currentasset_turnover,流动资产周转率(次)
        currentasset_days,流动资产周转天数(天)
    """
    if ct._check_input(year, quarter) is True:
        ct._write_head()
        data =  _get_operation_data(year, quarter, 1, pd.DataFrame())
        if data is not None:
#             data = data.drop_duplicates('code')
            data['code'] = data['code'].map(lambda x:str(x).zfill(6))
        return data
예제 #5
0
def get_growth_data(year, quarter):
    """
        获取成长能力数据
    Parameters
    --------
    year:int 年度 e.g:2014
    quarter:int 季度 :1、2、3、4,只能输入这4个季度
       说明:由于是从网站获取的数据,需要一页页抓取,速度取决于您当前网络速度
       
    Return
    --------
    DataFrame
        code,代码
        name,名称
        mbrg,主营业务收入增长率(%)
        nprg,净利润增长率(%)
        nav,净资产增长率
        targ,总资产增长率
        epsg,每股收益增长率
        seg,股东权益增长率
    """
    if ct._check_input(year, quarter) is True:
        ct._write_head()
        data =  _get_growth_data(year, quarter, 1, pd.DataFrame())
        if data is not None:
#             data = data.drop_duplicates('code')
            data['code'] = data['code'].map(lambda x:str(x).zfill(6))
        return data
예제 #6
0
def get_cashflow_data(year, quarter):
    """
        获取现金流量数据
    Parameters
    --------
    year:int 年度 e.g:2014
    quarter:int 季度 :1、2、3、4,只能输入这4个季度
       
    Return
    --------
    DataFrame
        FinancialRatios47,经营现金净流量对销售收入比率(%)
        FinancialRatios48,资产的经营现金流量回报率(%)
        FinancialRatios49,经营现金净流量与净利润的比率(%)
        FinancialRatios50,经营现金净流量对负债比率(%)
        FinancialRatios51,现金流量比率(%)
        Symbol,代码
        SName,股票名称
    """
    if ct._check_input(year, quarter) is True:
        ct._write_head()
        data = _get_cashflow_data(year, quarter,1,pd.DataFrame())
        if data is not None:
            data = data.drop_duplicates('Symbol')
            data['Symbol'] = data['Symbol'].map(lambda x:str(x).zfill(6))
        return data
예제 #7
0
def get_profit_data(year, quarter):
    """
        获取盈利能力数据
    Parameters
    --------
    year:int 年度 e.g:2014
    quarter:int 季度 :1、2、3、4,只能输入这4个季度
       说明:由于是从网站获取的数据,需要一页页抓取,速度取决于您当前网络速度
       
    Return
    --------
    DataFrame
        code,代码
        name,名称
        roe,净资产收益率(%)
        net_profit_ratio,净利率(%)
        gross_profit_rate,毛利率(%)
        net_profits,净利润(万元)
        eps,每股收益
        business_income,营业收入(百万元)
        bips,每股主营业务收入(元)
    """
    if ct._check_input(year, quarter) is True:
        ct._write_head()
        data =  _get_profit_data(year, quarter, 1, pd.DataFrame())
        if data is not None:
#             data = data.drop_duplicates('code')
            data['code'] = data['code'].map(lambda x:str(x).zfill(6))
        return data
예제 #8
0
def get_operation_data(year, quarter):
    """
        获取营运能力数据
    Parameters
    --------
    year:int 年度 e.g:2014
    quarter:int 季度 :1、2、3、4,只能输入这4个季度
       
    Return
    --------
    DataFrame
        Symbol,代码
        SName,股票名称
        FinancialRatios3,应收账款周转率(次)
        inancialRatios4,应收账款周转天数(天)
        FinancialRatios19,存货周转率(次)
        FinancialRatios22,存货周转天数(天)
        FinancialRatios24,流动资产周转率(次)
        FinancialRatios25,流动资产周转天数(天)
    """
    if ct._check_input(year, quarter) is True:
        ct._write_head()
        data = _get_operation_data(year, quarter,1,pd.DataFrame())
        if data is not None:
            data = data.drop('FinancialRatios21',axis=1)
            data = data.drop('FinancialRatios23',axis=1)
            data = data.drop_duplicates('Symbol')
            data['Symbol'] = data['Symbol'].map(lambda x:str(x).zfill(6))
        return data
예제 #9
0
def get_profit_data(year, quarter):
    """
        获取盈利能力数据
    Parameters
    --------
    year:int 年度 e.g:2014
    quarter:int 季度 :1、2、3、4,只能输入这4个季度
       
    Return
    --------
    DataFrame
        Symbol,代码
        SName,股票名称
        JZCSYL,净资产收益率(%)
        NPMargin,净利率(%)
        JLR,净利润(百万元)
        MGSY,每股收益(元)
        ZYYWSR,主营业务收入
        myGPMargin,毛利率(%)
        SPS,每股主营业务收入(元)
    """
    if ct._check_input(year, quarter) is True:
        ct._write_head()
        data = _get_profit_data(year, quarter,1,pd.DataFrame())
        if data is not None:
            data = data.drop('PTROA',axis=1)
            data = data.drop_duplicates('Symbol')
            data['Symbol'] = data['Symbol'].map(lambda x:str(x).zfill(6))
        return data
예제 #10
0
def get_growth_data(year, quarter):
    """
        获取成长能力数据
    Parameters
    --------
    year:int 年度 e.g:2014
    quarter:int 季度 :1、2、3、4,只能输入这4个季度
       
    Return
    --------
    DataFrame
        mbrg,主营业务收入增长率(%)
        nprg,净利润增长率(%)
        nav,净资产增长率(%)
        targ,总资产增长率(%)
        code,代码
        name,股票名称
        EXCHANGE,交易所
        eps,每股收益
        holderInterests,股东权益
        epsLastYear,去年每股收益
        holderInterestsLastYear,去年股东权益
        epsg,每股收益增长率(%)
        seg,股东权益增长率(%)
    """
    if ct._check_input(year, quarter) is True:
        filename = "growth_data_%d_%d.csv"%(year, quarter)
        data = cache.read_cache(filename)
        if  data is not None:
            data = data.drop_duplicates('code')
            data['code'] = data['code'].map(lambda x:str(x).zfill(6))
            return data
        #nocache
        ct._write_head()
        data = _get_growth_data(year, quarter,1,pd.DataFrame())
        cache.write_cache(data,filename)
        if data is not None:
            data = data.drop_duplicates('code')
            data['code'] = data['code'].map(lambda x:str(x).zfill(6))
        return data
예제 #11
0
def get_report_data(year, quarter):
    """
        获取业绩报表数据
    Parameters
    --------
    year:int 年度 e.g:2014
    quarter:int 季度 :1、2、3、4,只能输入这4个季度
       
    Return
    --------
    DataFrame
        CompanyCode,公司代码
        ReportDate,报告时间
        PUBLISHDATE,报告实际发布时间
        eps,每股收益(元)
        MFRatio18,每股净资产(元)
        MFRatio22,净资产收益率(%)
        MFRatio20,每股现金流量(元)
        MFRatio2,净利润(万元)
        Symbol,代码
        SName,股票名称
        EXCHANGE,交易所
        epsLastYear,去年同期每股收益
        netprofitLastYear,去年同期净利润
        eps_ratio,每股收益同比(%)
        MFRatio2Ratio,净利润同比(%)
        DisHty,利润分配方案
        detail,详情
    """
    if ct._check_input(year, quarter) is True:
        
        ct._write_head()
        data = _get_report_data(year, quarter,1,pd.DataFrame())
        if data is not None:
            data = data.drop_duplicates('Symbol')
            data['Symbol'] = data['Symbol'].map(lambda x:str(x).zfill(6))
        return data
예제 #12
0
def get_debtpaying_data(year, quarter):
    """
        获取偿债能力数据
    Parameters
    --------
    year:int 年度 e.g:2014
    quarter:int 季度 :1、2、3、4,只能输入这4个季度
       
    Return
    --------
    DataFrame
        FinancialRatios1,流动比率(%)
        FinancialRatios2,速动比率(%)
        FinancialRatios5,现金比率(%)
        FinancialRatios6,利息支付倍数
        FinancialRatios8,股东权益比率(%)
        FinancialRatios56,资产负债率(%)
        Symbol,代码
        SName,股票名称
    """
    
    #nocache
    if ct._check_input(year, quarter) is True:
        filename = "debtpaying_data_%d_%d.csv"%(year, quarter)
        data = cache.read_cache(filename)
        if  data is not None:
            return data
        ct._write_head()
        data = _get_debtpaying_data(year, quarter,1,pd.DataFrame())
        if data is not None:
            data = data.drop('FinancialRatios9',axis=1)
            data = data.drop('FinancialRatios18',axis=1)
            data = data.drop_duplicates('Symbol')
            data['Symbol'] = data['Symbol'].map(lambda x:str(x).zfill(6))
        cache.write_cache(data,filename)
        return data