def rowToORM(row, code): obj = Model() obj.code = code # VDPP, obj.name = toStr(row.loc['name']) # observation, obj.industry = toStr(row.loc['industry']) obj.area = toStr(row.loc['area']) obj.pe = toFloat(row.loc['pe']) obj.outstanding = toFloat(row.loc['outstanding']) obj.totals = toFloat(row.loc['totals']) obj.totalAssets = toFloat(row.loc['totalAssets']) obj.liquidAssets = toFloat(row.loc['liquidAssets']) # 流动资产 obj.fixedAssets = toFloat(row.loc['fixedAssets']) # 固定资产 obj.reserved = toFloat(row.loc['reserved']) # 公积金 obj.reservedPerShare = toFloat(row.loc['reservedPerShare']) # 每股公积金 obj.esp = toFloat(row.loc['esp']) # 每股收益 obj.bvps = toFloat(row.loc['bvps']) # 每股净资 obj.pb = toFloat(row.loc['pb']) # 市净率 tsString = str(row.loc['timeToMarket']) # 上市日期 if len(tsString) < 8: obj.timeToMarket = None else: year, mon, day = int(tsString[:4]), int(tsString[4:6]), int( tsString[6:]) datetime_object = datetime(year, mon, day) obj.timeToMarket = datetime_object obj.undp = toFloat(row.loc['undp']) # 未分利润 obj.perundp = toFloat(row.loc['perundp']) # 每股未分配 obj.rev = toFloat(row.loc['rev']) obj.profit = toFloat(row.loc['profit']) obj.gpr = toFloat(row.loc['gpr']) obj.npr = toFloat(row.loc['npr']) obj.holders = toFloat(row.loc['holders']) # 股东人数 return obj
def rowToORM(row, year, quarter): obj = Model() obj.code = toStr(row.loc['code']) # 股票代码 obj.name = toStr(row.loc['name']) # 股票名称 obj.year = int(year) # 分配年份 obj.quarter = int(quarter) tsString = str(row.loc['date']) obj.report_date = None try: obj.report_date = parse(tsString) except: logging.warning( "Fail to get date from {} from {}. Using {} as Fallback".format( __name__, tsString, obj.report_date)) obj.nums = toInt(row.loc['nums']) # 基金家数 obj.nlast = toInt(row.loc['nlast']) # 与上期相比(增加或减少了) obj.count = toFloat(row.loc['count']) # 基金持股数(万股) obj.clast = toFloat(row.loc['clast']) # 与上期相比 obj.amount = toFloat(row.loc['amount']) # 基金持股市值 obj.ratio = toFloat(row.loc['ratio']) # 占流通盘比率 return obj
def rowToORM(row): obj = ClassifiedSt() obj.code = toStr(row.loc['code']) obj.name = toStr(row.loc['name']) obj.oDate = row.loc['oDate'] obj.tDate = row.loc['tDate'] return obj
def rowToORM(row): obj = ClassifiedSt() obj.code = toStr(row.loc['code']) obj.name = toStr(row.loc['name']) ts = datetime.datetime.fromtimestamp(row.loc['date'].value / 1000000000) obj.date = ts.date() obj.weight = toFloat(row.loc['weight']) # obj.pk = "{code}_{date}".format(code=obj.code,date=dateTimeToTsStr(ts)) return obj
def rowToORM(row): obj = Model() obj.boxOffice = toFloat(row.loc['BoxOffice']) # 实时票房(万) obj.irank = toInt(row.loc['Irank']) # 排名 obj.movieName = toStr(row.loc['MovieName']) # 影片名 obj.boxPer = toFloat(row.loc['boxPer']) # 票房占比 ( % ) obj.movieDay = toInt(row.loc['movieDay']) # 上映天数 obj.sumBoxOffice = toFloat(row.loc['sumBoxOffice']) # 累计票房(万) tsString = str(row.loc['time']) obj.time = None try: obj.time = parse(tsString) minute = obj.time.minute if minute >= 30: minute = 30 else: minute = 0 tsString = obj.time.strftime("%Y-%m-%d %H") tsString = "{pre}:{min:02d}:00".format(pre=tsString, min=minute) obj.time = parse(tsString) except: logging.warning( "Fail to get date from {} from {}. Using {} as Fallback".format( __name__, tsString, obj.time)) if obj.movieName == "其它": return None return obj
def rowToORM(row, year, month): obj = Model() obj.year = year obj.month = month obj.avgPrice = toInt(row.loc['avgboxoffice']) # 平均票价 obj.avpPeoPle = toInt(row.loc['avgshowcount']) # 场均人次 obj.boxOffice = toFloat(row.loc['boxoffice']) # 单日票房(万) obj.box_pro = toFloat(row.loc['box_pro']) # 月度占比 obj.iRank = toInt(row.loc['Irank']) # 排名 obj.movieName = toStr(row.loc['MovieName'])[0:Model.TEXT_MAX_LENGTH] # 影片名 if obj.movieName == "其他" or obj.movieName == "其它": return None obj.womIndex = toFloat(row.loc['WomIndex']) # 口碑指数 obj.days = toInt(row.loc['days']) tsString = str(row.loc['releaseTime']) obj.time = None try: obj.releaseTime = parse(tsString) except: logging.warning( "Fail to get date from {} from {}. Using {} as Fallback".format( __name__, tsString, obj.releaseTime)) if obj.releaseTime is None: return None return obj
def rowToORM(row): obj = Model() obj.code = toStr(row.loc['code']) # 股票代码 obj.name = toStr(row.loc['name']) # 股票名称 obj.year = int(row.loc['year']) # 分配年份 tsString = str(row.loc['report_date']) obj.report_date = None try: obj.report_date = parse(tsString) except: logging.warning( "Fail to get date from {} from {}. Using {} as Fallback".format( __name__, tsString, obj.report_date)) obj.divi = toFloat(row.loc['divi']) # 分红金额(每10股) obj.shares = toFloat(row.loc['shares']) # 转增和送股数(每10股) return obj
def rowToORM(row, year, month): obj = Model() obj.code = toStr(row.loc['code']) # 股票代码 obj.name = toStr(row.loc['name']) # 股票名称 obj.year = int(year) # 分配年份 obj.month = int(month) tsString = toStr(row.loc['date']) obj.report_date = None try: obj.report_date = parse(tsString) except: logging.warning( "Fail to get date from {} from {}. Using {} as Fallback".format( __name__, tsString, obj.report_date)) obj.count = toFloat(row.loc['count']) obj.ratio = toFloat(row.loc['ratio']) return obj
def rowToORM(row, tablename, ktype): obj = TableCreator(tablename)() obj.code = toStr(row.loc['code']) obj.ktype = str(ktype) tsString = row.loc['date'] datetime_object = parse(tsString) obj.ts = datetime_object obj.open = row.loc['open'] obj.close = row.loc['close'] obj.high = row.loc['high'] obj.low = row.loc['low'] obj.volume = row.loc['volume'] return obj
def rowToORM(row): obj = Model() obj.code = toStr(row.loc['stockCode']) # 标的证券代码 obj.name = toStr(row.loc['securityAbbr']) # 标的证券简称 tsString = toStr(row.loc['opDate']) obj.opDate = None try: obj.opDate = parse(tsString) except: logging.warning("Fail to get date from {} from {}. Using {} as Fallback". format(__name__, tsString, obj.opDate)) obj.rzmre = toInt(row.loc['rzmre']) # 融资买入额(元) obj.rzye = toInt(row.loc['rzye']) # 融资余额(元) obj.rqmcl = toInt(row.loc['rqmcl']) # 融券卖出量 obj.rqyl = toInt(row.loc['rqyl']) # 融券余量 obj.rqye = toInt(row.loc['rqye']) # 融券余量(元) obj.rzrqye = toInt(row.loc['rzrqye']) # 融资融券余额(元) return obj
def rowToORM(row, year, quarter): obj = Model() obj.code = toStr(row.loc['code']) # 股票代码 obj.name = toStr(row.loc['name']) # 股票名称 obj.type = toStr(row.loc['type']) obj.year = int(year) # 分配年份 obj.quarter = int(quarter) tsString = str(row.loc['report_date']) obj.report_date = None try: obj.report_date = parse(tsString) except: logging.warning( "Fail to get date from {} from {}. Using {} as Fallback".format( __name__, tsString, obj.report_date)) obj.pre_eps = toFloat(row.loc['pre_eps']) # 分红金额(每10股) obj.range = toStr(row.loc['range'])[0:255] # 转增和送股数(每10股) return obj
def rowToORM(row): obj = Model() tsString = str(row.loc['date']) obj.exe_date = None try: obj.exe_date = parse(tsString) except: logging.warning( "Fail to get date from {} from {}. Using {} as Fallback".format( __name__, tsString, obj.exe_date)) obj.deposit_type = toStr(row.loc['deposit_type'][0:Model.TEXT_MAX_LENGTH]) obj.rate = toFloat(row.loc['rate']) return obj
def rowToORM(row, code: str, currentStr: str): tsStr = "{}T{}".format(currentStr, toStr(row.loc['time'])) # timestamp = datetime.fromisoformat(tsStr) # Only for py3.7+ timestamp = parser.parse(tsStr) timestamp = timestamp - timedelta(seconds=TIME_ZONE_OFFSET_SECONDS) typeStr = toStr(row.loc['type']) influxPoint = { "measurement": "share_tick", "tags": { "code": code }, "time": timestamp, "fields": { "price": toFloat(row.loc['price']), "change": toFloat(row.loc['change']), "volume": toInt(row.loc['volume']), "amount": toInt(row.loc['amount']), "type_buy": typeStr == '买盘', "type_sell": typeStr == '卖盘', "type_neutral": typeStr == '中性盘' } } return influxPoint
def rowToORM(row): obj = Model() obj.code = toStr(row.loc['code']) # 股票代码 obj.name = toStr(row.loc['name']) # 股票名称 obj.date = datetime.now() tsString = str(row.loc['ipo_date']) obj.ipo_date = None try: obj.ipo_date = parse(tsString) except: logging.info( "Fail to get date from {} from {}. Using {} as Fallback".format( __name__, tsString, obj.ipo_date)) tsString = str(row.loc['issue_date']) obj.issue_date = None try: obj.issue_date = parse(tsString) except: logging.info( "Fail to get date from {} from {}. Using {} as Fallback".format( __name__, tsString, obj.issue_date)) if obj.code is None or obj.ipo_date is None: return None obj.amount = toInt(row.loc['amount']) # 发行数量(万股) obj.markets = toInt(row.loc['markets']) # 上网发行数量(万股) obj.price = toFloat(row.loc['price']) # 发行价格(元) obj.pe = toFloat(row.loc['pe']) # 发行市盈率 obj.limit = toFloat(row.loc['limit']) # 个人申购上限(万股) obj.funds = toFloat(row.loc['funds']) # 募集资金(亿元) obj.ballot = toFloat(row.loc['ballot']) # 网上中签率( %) return obj
def rowToORM(row): obj = Model() tsString = toStr(row.loc['month']) strs = tsString.split('.') if len(strs) < 2: obj.year = None obj.month = None logging.warning( "Fail to get date from deposit rate. Using None as Fallback") else: obj.year = int(strs[0]) obj.month = int(strs[1]) obj.cpi = toFloat(row.loc['cpi']) # cpi return obj
def rowToORM(row): obj = Model() tsString = toStr(row.loc['opDate']) obj.opDate = None try: obj.opDate = parse(tsString) except: logging.warning( "Fail to get date from {} from {}. Using {} as Fallback".format( __name__, tsString, obj.opDate)) obj.rzye = toInt(row.loc['rzye']) # 本日融资余额(元) obj.rzmre = toInt(row.loc['rzmre']) # 本日融资买入额(元) obj.rqyl = toInt(row.loc['rqyl']) # 本日融券余量 obj.rqylje = toInt(row.loc['rqylje']) # 本日融券余量金额(元) obj.rqmcl = toInt(row.loc['rqmcl']) # 本日融券卖出量 obj.rzrqjyzl = toInt(row.loc['rzrqjyzl']) # 本日融资融券余额(元) return obj
def rowToORM(row, date: datetime): obj = Model() obj.attendance = toFloat(row.loc['Attendance']) # 上座率 obj.avgPeople = toFloat(row.loc['AvgPeople']) # 场均人次 obj.cinemaName = toStr( row.loc['CinemaName'])[0:Model.TEXT_MAX_LENGTH] # 影院名称 obj.iRank = toFloat(row.loc['RowNum']) # 排名 obj.todayAudienceCount = toFloat(row.loc['TodayAudienceCount']) # 当日观众人数 obj.todayBox = toFloat(row.loc['TodayBox']) # 当日票房 obj.todayShowCount = toFloat(row.loc['TodayShowCount']) # 当日场次 obj.price = toFloat(row.loc['price']) # 场均票价(元) obj.pk = "{name}_{date}".format(name=obj.cinemaName, date=dateTimeToTsStr(date)) obj.date = date obj.timestamp = date return obj
def rowToORM(row): obj = ClassifiedArea() obj.code = toStr(row.loc['code']) obj.name = toStr(row.loc['name']) obj.area = toStr(row.loc['area']) return obj
def rowToORM(row): obj = ClassifiedSt() obj.code = toStr(row.loc['code']) obj.name = toStr(row.loc['name']) return obj
def rowToORM(row, year, quarter): obj = ReportMain() obj.code = toStr(row.loc['code']) # 代码 obj.name = toStr(row.loc['name']) # 名称 obj.year = year # year obj.quarter = quarter # quarter tsString = "{:04d}-{:s}".format(year, row.loc['report_date']) if quarter >= 4: tsString = "{:04d}-{:s}".format(year + 1, row.loc['report_date']) obj.report_date = datetime(year=year, month=quarter * 3, day=1) + timedelta(days=32) try: obj.report_date = parse(tsString) # 发布日期 if obj.report_date.month // 3 + 1 < quarter: if quarter < 4: obj.report_date = datetime(year=obj.report_date.year + 1, month=obj.report_date.month, day=obj.report_date.day) except ValueError: obj.report_date = datetime(year=year, month=quarter * 3, day=1) + timedelta(days=32) logging.warning( 'Parse date {} for code {}({}) on {}Q{} failed using fallback {}.'. format(tsString, obj.code, obj.name, year, quarter, obj.report_date)) pass obj.eps = toFloat(row.loc['eps']) # 每股收益 obj.eps_yoy = toFloat(row.loc['eps_yoy']) # 每股收益同比(%) obj.bvps = toFloat(row.loc['bvps']) # 每股净资产 obj.roe = toFloat(row.loc['roe']) # 净资产收益率(%) obj.epcf = toFloat(row.loc['epcf']) # 每股现金流量(元) obj.net_profits = toFloat(row.loc['net_profits']) # 净利润(万元) obj.profits_yoy = toFloat(row.loc['profits_yoy']) # 净利润同比(%) obj.distrib = toFloat(row.loc['distrib']) # 分配方案 obj.net_profit_ratio = toFloat(row.loc['net_profit_ratio']) # 净利率(%) obj.gross_profit_rate = toFloat(row.loc['gross_profit_rate']) # 毛利率(%) obj.business_income = toFloat(row.loc['business_income']) # 营业收入(百万元) obj.bips = toFloat(row.loc['bips']) # 每股主营业务收入(元) obj.arturnover = toFloat(row.loc['arturnover']) # 应收账款周转率(次) obj.arturndays = toFloat(row.loc['arturndays']) # 应收账款周转天数(天) obj.inventory_turnover = toFloat(row.loc['inventory_turnover']) # 存货周转率(次) obj.inventory_days = toFloat(row.loc['inventory_days']) # 存货周转天数(天) obj.currentasset_turnover = toFloat( row.loc['currentasset_turnover']) # 流动资产周转率(次) obj.currentasset_days = toFloat( row.loc['currentasset_days']) # 流动资产周转天数(天) obj.mbrg = toFloat(row.loc['mbrg']) # 主营业务收入增长率(%) obj.nprg = toFloat(row.loc['nprg']) # 净利润增长率(%) obj.nav = toFloat(row.loc['nav']) # 净资产增长率 obj.targ = toFloat(row.loc['targ']) # 总资产增长率 obj.epsg = toFloat(row.loc['epsg']) # 每股收益增长率 obj.seg = toFloat(row.loc['seg']) # 股东权益增长率 obj.currentratio = toFloat(row.loc['currentratio']) # 流动比率 obj.quickratio = toFloat(row.loc['quickratio']) # 速动比率 obj.cashratio = toFloat(row.loc['cashratio']) # 现金比率 obj.icratio = toFloat(row.loc['icratio']) # 利息支付倍数 obj.sheqratio = toFloat(row.loc['sheqratio']) # 股东权益比率 obj.adratio = toFloat(row.loc['adratio']) # 股东权益增长率 obj.cf_sales = toFloat(row.loc['cf_sales']) # 经营现金净流量对销售收入比率 obj.rateofreturn = toFloat(row.loc['rateofreturn']) # 资产的经营现金流量回报率 obj.cf_nm = toFloat(row.loc['cf_nm']) # 经营现金净流量与净利润的比率 obj.cf_liabilities = toFloat(row.loc['cf_liabilities']) # 经营现金净流量对负债比率 obj.cashflowratio = toFloat(row.loc['cashflowratio']) # 现金流量比率 return obj
def rowToORM(row): obj = ClassifiedIndustry() obj.code = toStr(row.loc['code']) obj.name = toStr(row.loc['name']) obj.c_name = toStr(row.loc['c_name']) return obj