示例#1
0
    def _sort(self, user_code_list: list = None, lines: int = None):
        # df.sort_index(by='pb', axis=0, ascending=[True])
        ndf = pd.DataFrame()
        df = self._filter(user_ts_code_list=user_code_list)

        if df.empty is False:
            if lines is None:
                max_lines = int(config.max_lines)
            else:
                max_lines = lines
            """排序"""
            sort_title = config.sort_title.split('|')
            sort_type = config.sort_type.split('|')
            sort_title.append('Risk_level')
            sort_type.append('False')
            df1 = df[df['Risk_level'] == '0'].sort_values(
                by=sort_title, ascending=sort_type).head(max_lines)
            df2 = df[df['Risk_level'] == '1'].sort_values(
                by=sort_title, ascending=sort_type).head(max_lines)
            ndf = pd.concat([df1, df2], ignore_index=True)

            stock_fi = Util_tools.bytes_to_dataFrame(
                RedisBase().redis().get('stock_fi'))
            if stock_fi.empty:  # 在线取每股净资产
                for idx, row in ndf.iterrows():
                    sg_data = get_skData().get_stock_fi(row['ts_code'])
                    ndf.loc[idx, 'bps'] = float(sg_data['bps'])
        return ndf
示例#2
0
def _init_stock_daily_udata():
    new_df = pd.DataFrame()
    # 股票基本分类数据
    stock_base = t_util.bytes_to_dataFrame(
        RedisBase().redis().get('stock_base'))
    stock_daily = t_util.bytes_to_dataFrame(
        RedisBase().redis().get('stock_daily'))
    stock_fi = t_util.bytes_to_dataFrame(RedisBase().redis().get('stock_fi'))
    for index, row in stock_base.iterrows():
        df = stock_daily[stock_daily['ts_code'] == row['ts_code']]
        if stock_fi.empty is False:
            bvps = stock_fi.loc[row['symbol']]['bvps']
        if df.empty is False:
            daily_b.ts_code = str(row['ts_code'])  # 股票名称
            daily_b.name = str(row['name'])  # 股票名称
            daily_b.symbol = str(row['symbol'])  # 股票名称
            daily_b.industry = str(row['industry'])  # 股票名称
            daily_b.trade_date = str(df.loc[df.index,
                                            'trade_date'].values[0])  # 交易日期
            daily_b.close = float(df['close'])  # 当日收盘价
            daily_b.ts_code = str(row['ts_code'])  # 股票代码
            daily_b.pe = float(df['pe'])  # 市盈率(总市值/净利润)
            daily_b.pe_ttm = float(df['pe_ttm'])  # 市盈率(TTM)
            daily_b.pb = float(df['pb'])  # 市净率(总市值/净资产)
            if bvps is None:
                daily_b.bps = float(0)  # 每股净资产
            else:
                daily_b.bps = float(bvps)  # 每股净资产

            data = {
                'ts_code': daily_b.ts_code,
                'symbol': daily_b.symbol,
                'name': daily_b.name,
                'industry': daily_b.industry,
                'trade_date': daily_b.trade_date,
                'pe': daily_b.pe,
                'pe_ttm': daily_b.pe_ttm,
                'pb': daily_b.pb,
                'bps': daily_b.bps
            }
            add_data = pd.Series(data)
            """ignore_index=True,表示不按原来的索引,从0开始自动递增"""
            new_df = new_df.append(add_data, ignore_index=True)
    return new_df
示例#3
0
                daily_b.bps = float(0)  # 每股净资产
            else:
                daily_b.bps = float(bvps)  # 每股净资产

            data = {
                'ts_code': daily_b.ts_code,
                'symbol': daily_b.symbol,
                'name': daily_b.name,
                'industry': daily_b.industry,
                'trade_date': daily_b.trade_date,
                'pe': daily_b.pe,
                'pe_ttm': daily_b.pe_ttm,
                'pb': daily_b.pb,
                'bps': daily_b.bps
            }
            add_data = pd.Series(data)
            """ignore_index=True,表示不按原来的索引,从0开始自动递增"""
            new_df = new_df.append(add_data, ignore_index=True)
    return new_df


if __name__ == '__main__':
    # print(init_stock_data())
    # print(init_stock_fi_data())
    # print(init_stock_fi_data())
    stock_base = t_util.bytes_to_dataFrame(
        RedisBase().redis().get('stock_base'))
    df = stock_base.drop_duplicates(['industry'])
    for index, row in df.iterrows():
        print(row['industry'])
    # init_everyday()
示例#4
0
# df = tuShare.get_realtime_quotes('000425')
# for index, cow in df.iterrows():
#     print(cow)

# price = df.loc[0, 'price']
# print(price)
# print(df)

# stock_data = get_skData().stock_b()

# flag = RedisBase().redis().set('stock_base', df_bytes)
# df = t_util.bytes_to_dataFrame(RedisBase().redis().get('stock_base'))

# date:日期YYYY-MM-DD,默认为上一个交易日,目前只能提供2016-08-09之后的历史数据
stock_basics = tuShare.get_stock_basics('2020-02-28')
df = stock_basics.loc['000732']
start = datetime.datetime.now()
# daily_data = t_util.bytes_to_dataFrame(RedisBase().redis().get('stock_daily'))
# stock_data = t_util.bytes_to_dataFrame(RedisBase().redis().get('stock_base'))
stock_details_daily = t_util.bytes_to_dataFrame(
    RedisBase().redis().get('stock_details_daily'))
end = datetime.datetime.now()
print('Running time: %s Seconds' % (end - start))

# print(daily_data)
print(tuShare.get_stock_basics())
# print(daily_data)
# r = 100 / 100
# print(round(r))
示例#5
0
 def __init__(self):
     """Redis 数据初始化,取股票基本数据"""
     self.stock_details_daily = Util_tools.bytes_to_dataFrame(
         RedisBase().redis().get('stock_details_daily'))
     """高危版块"""
     self.list_industry = config.industry.split('|')