Exemple #1
0
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
Exemple #2
0
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
Exemple #5
0
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
Exemple #6
0
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
Exemple #7
0
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
Exemple #8
0
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
Exemple #9
0
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
Exemple #10
0
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
Exemple #11
0
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
Exemple #12
0
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
Exemple #13
0
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
Exemple #14
0
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
Exemple #15
0
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
Exemple #16
0
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
Exemple #17
0
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
Exemple #18
0
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
Exemple #19
0
def rowToORM(row):
    obj = ClassifiedSt()
    obj.code = toStr(row.loc['code'])
    obj.name = toStr(row.loc['name'])
    return obj
Exemple #20
0
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
Exemple #21
0
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