Ejemplo n.º 1
0
 def get_stock_basics(self):
     filename = "get_stock_basics-cache.csv"
     df = self._read_cache(filename)
     if df is None:
         if isinstance(df, pd.DataFrame) and 'code' in df.columns:
             df['code'] = df['code'].map(lambda x: str(x).zfill(6))
             df = df.set_index('code')
     else:
         df = fd.get_stock_basics()
         if isinstance(df, pd.DataFrame):
             self._write_cache(df, filename)
     return df
Ejemplo n.º 2
0
 def get_stock_basics(self):
     filename = "get_stock_basics-cache.csv"
     df = self._read_cache(filename)
     if df is None:
         if isinstance(df, pd.DataFrame) and 'code' in df.columns:
             df['code'] = df['code'].map(lambda x:str(x).zfill(6))
             df = df.set_index('code')
     else:
         df = fd.get_stock_basics()
         if isinstance(df, pd.DataFrame):
             self._write_cache(df,filename)
     return df
Ejemplo n.º 3
0
def get_stock_growth():
    """
        获取股票3年的增长率和最近几个季度的增长率
    Return
    --------
    DataFrame
        code :股票代码
        name :股票名称
        1year:最近一年增长率
        2year:最近二年增长率
        3year:最近三年增长率
        4year:最近四年增长率
        1quarter:最近一季度增长率
        2quarter:最近二季度增长率
        3quarter:最近三季度增长率
        4quarter:最近四季度增长率
    """
    stock_list = fd.get_stock_basics()
    df = pd.DataFrame(index=stock_list.index, columns=['name','industry','area','1quarter','2quarter','1year','2year','3year','4year','3quarter','4quarter'])
    df['name'] = stock_list['name']
    df['industry'] = stock_list['industry']
    df['area'] = stock_list['area']
    cur = datetime.datetime.now()
    curyear = cur.year
    fir_year_growth_data = fd.get_growth_data(curyear-1,4)
    if fir_year_growth_data.empty:
        curyear = curyear - 1
        fir_year_growth_data = fd.get_growth_data(curyear-1,4)
    sec_year_growth_data = fd.get_growth_data(curyear-2,4)
    thir_year_growth_data = fd.get_growth_data(curyear-3,4)
    for_year_growth_data = fd.get_growth_data(curyear-4,4)

    for i in fir_year_growth_data.index:
        df.loc[fir_year_growth_data.loc[i,'code'],'1year'] = fir_year_growth_data.loc[i,'nprg']
    for i in sec_year_growth_data.index:
        df.loc[sec_year_growth_data.loc[i,'code'],'2year'] = sec_year_growth_data.loc[i,'nprg']
    for i in thir_year_growth_data.index:
        df.loc[thir_year_growth_data.loc[i,'code'],'3year'] = thir_year_growth_data.loc[i,'nprg']
    for i in for_year_growth_data.index:
        df.loc[for_year_growth_data.loc[i,'code'],'4year'] = for_year_growth_data.loc[i,'nprg']

    curmonth = cur.month
    if curmonth in(4,5,6):
        curquarter = 1
        curyear = cur.year
    elif curmonth in (7,8,9):
        curquarter = 2
        curyear = cur.year
    elif curmonth in (10,11,12):
        curquarter = 3
        curyear = cur.year
    elif curmonth in(1,2,3):
        curquarter = 4
        curyear = cur.year - 1
    fir_quarter_growth_data = fd.get_growth_data(curyear,curquarter)
    if fir_quarter_growth_data.empty:
        curyear,curquarter = _sub_quarter(curyear,curquarter)
        fir_quarter_growth_data = fd.get_growth_data(curyear,curquarter)
    curyear2,curquarter2 = _sub_quarter(curyear,curquarter)
    sec_quarter_growth_data = fd.get_growth_data(curyear2,curquarter2)

    curyear3,curquarter3 = _sub_quarter(curyear2,curquarter2)
    thir_quarter_growth_data = fd.get_growth_data(curyear3,curquarter3)

    curyear4,curquarter4 = _sub_quarter(curyear3,curquarter3)
    for_quarter_growth_data = fd.get_growth_data(curyear4,curquarter4)

    for i in fir_quarter_growth_data.index:
        df.loc[fir_quarter_growth_data.loc[i,'code'],'1quarter'] = fir_quarter_growth_data.loc[i,'nprg']
    for i in sec_quarter_growth_data.index:
        df.loc[sec_quarter_growth_data.loc[i,'code'],'2quarter'] = sec_quarter_growth_data.loc[i,'nprg']
    for i in thir_quarter_growth_data.index:
        df.loc[thir_quarter_growth_data.loc[i,'code'],'3quarter'] = thir_quarter_growth_data.loc[i,'nprg']
    for i in for_quarter_growth_data.index:
        df.loc[for_quarter_growth_data.loc[i,'code'],'4quarter'] = for_quarter_growth_data.loc[i,'nprg']
    return df