コード例 #1
0
    re_qtr_samp = WS_resample(seq_DT, re_qtr, fill_cols=fill_cols)
    co_qtr_samp = WS_resample(seq_DT, co_qtr, fill_cols=fill_cols)
    oi_qtr_samp = WS_resample(seq_DT, oi_qtr, fill_cols=fill_cols)

    cm_qtr_samp = align_subtract(re_qtr_samp, co_qtr_samp)

    ol_qtr_samp = align_div(cm_qtr_samp, oi_qtr_samp)

    DF_ol_qtr = DF_ol_qtr.append(ol_qtr_samp, sort=False)

    batch_monitor_msg(i, tot_n, st_time)
batch_finish_msg(tot_n, st_time)

DF_ol_tot = substitute_Value(DF_ol_yr, DF_ol_qtr)
#*------------
firstCheck_duplicates(DF_ol_tot)
#*------------
# Map Code -> TMSRS_CD
# Should customize columns by needed ones.
# MUST HAVE 'BASE_DT', 'TMSRS_CD', 'Code', 'Value_', 'RGN_TP_CD', 'freq'
cols = [
    'BASE_DT', 'TMSRS_CD', 'Code', 'Value_yr', 'Value_qtr', 'Value_',
    'RGN_TP_CD', 'freq', 'ref'
]
DF_ol_tot = add_mapped_tick(DF_ol_tot, trim_codeMap)[cols]
DF_ol_tot['StyleName'] = 'OpLev'
#*------------
secondCheck_columns(DF_ol_tot)
#*------------
DF = DF_ol_tot
コード例 #2
0
    # Quarter
    fill_cols = ['FiscalPrd', 'FiscalPrd2', 'CalPrdEndDate', 'Value_', 'FILLyr']
    gi_qtr_samp = WS_resample(seq_DT, gi_qtr, fill_cols=fill_cols)
    aa_qtr_samp = WS_resample(seq_DT, aa_qtr, fill_cols=fill_cols)

    gpoa_qtr_samp = align_div(gi_qtr_samp, aa_qtr_samp)
    gpoa_qtr_samp['Value_'] = gpoa_qtr_samp['Value_'] * 100

    DF_gpoa_qtr = DF_gpoa_qtr.append(gpoa_qtr_samp, sort=False)
    
    batch_monitor_msg(i, tot_n, st_time)
batch_finish_msg(tot_n, st_time)

DF_gpoa_tot = substitute_Value(DF_gpoa_yr, DF_gpoa_qtr)
#*------------
firstCheck_duplicates(DF_gpoa_tot)
#*------------
# Map Code -> TMSRS_CD
# Should customize columns by needed ones.
# MUST HAVE 'BASE_DT', 'TMSRS_CD', 'Code', 'Value_', 'RGN_TP_CD', 'freq'
cols = ['BASE_DT', 'TMSRS_CD', 'Code', 'Value_yr', 'Value_qtr', 'Value_',
        'RGN_TP_CD', 'freq', 'ref']
DF_gpoa_tot = add_mapped_tick(DF_gpoa_tot, trim_codeMap)[cols]
DF_gpoa_tot['StyleName'] = 'GPOA'
#*------------
secondCheck_columns(DF_gpoa_tot)
#*------------
DF = DF_gpoa_tot

# Save!
save_batch(bkfil, DF, mapping, fileName)
コード例 #3
0
    DF_raw_samp = reduce(my_merge, [DF_raw0, DF_raw1, DF_raw2])

    DF_IBES_ROE = DF_IBES_ROE.append(DF_raw_samp, sort=False)

    batch_monitor_msg(i, tot_n, st_time)
batch_finish_msg(tot_n, st_time)

DF_IBES_ROE.sort_values(['RGN_TP_CD', 'Code', 'BASE_DT'], inplace=True)
DF_IBES_ROE.reset_index(drop=True, inplace=True)
DF_IBES_ROE = chg_to_type(DF_IBES_ROE,
                          chg_col=['BASE_DT', 'Code', 'RGN_TP_CD'],
                          type_=str)

#*------------
firstCheck_duplicates(DF_IBES_ROE, add_cols=['RGN_TP_CD'])
#*------------
DF_IBES_ROE = add_mapped_tick(DF_IBES_ROE,
                              trim_codeMap,
                              on=['Code', 'RGN_TP_CD'])

cols = [
    'BASE_DT', 'TMSRS_CD', 'Code', 'RGN_TP_CD', 'FY0', 'Px0', 'ActValue0',
    'FY1', 'Median1', 'FY2', 'Median2', 'FY3', 'Median3', 'ROE_fy0', 'ROE_fy1',
    'ROE_fy2'
]
DF_IBES_ROE = DF_IBES_ROE[cols]

# CREATE Expected2YR ROE AVERAGE-------
A0 = DF_IBES_ROE.loc[DF_IBES_ROE['ROE_fy0'].notnull(),
                     ['BASE_DT', 'TMSRS_CD', 'Code', 'RGN_TP_CD', 'ROE_fy0']]
コード例 #4
0
    # <<< Trim Date >>>
    (ebitda2p_yr_samp,
     ebitda2p_qtr_samp) = (trimDateSeq(seq_DT, DF)
                           for DF in [ebitda2p_yr_samp, ebitda2p_qtr_samp])

    DF_ebitda2p_qtr = DF_ebitda2p_qtr.append(ebitda2p_qtr_samp, sort=False)
    DF_ebitda2p_yr = DF_ebitda2p_yr.append(ebitda2p_yr_samp, sort=False)

    batch_monitor_msg(i, tot_n, st_time)
batch_finish_msg(tot_n, st_time)

DF_ebitda2p_tot = substitute_Value(DF_ebitda2p_yr,
                                   DF_ebitda2p_qtr,
                                   val_col='zValue_')
#*------------
firstCheck_duplicates(DF_ebitda2p_tot)
#*------------
# Map Code -> TMSRS_CD
# Should customize columns by needed ones.
# MUST HAVE 'BASE_DT', 'TMSRS_CD', 'Code', 'Value_', 'RGN_TP_CD', 'freq'
cols = [
    'BASE_DT', 'TMSRS_CD', 'Code', 'Value_yr', 'Value_qtr', 'Value_',
    'RGN_TP_CD', 'freq', 'ref'
]
DF_ebitda2p_tot = add_mapped_tick(DF_ebitda2p_tot, trim_codeMap)[cols]
DF_ebitda2p_tot['StyleName'] = '5YRel_EBITDA2P'
#*------------
secondCheck_columns(DF_ebitda2p_tot)
#*------------
DF = DF_ebitda2p_tot
コード例 #5
0
    ro_qtr_samp = simple_mult(oi_qtr_samp, tax_qtr_samp).rename(columns={'FiscalPrd_0': 'FiscalPrd'})
    ic_qtr_samp = simple_subtract(aa_qtr_samp, c_qtr_samp).rename(columns={'FiscalPrd_0': 'FiscalPrd'})
    ic_qtr_samp = ic_qtr_samp[ic_qtr_samp['Value_'] > 0]

    roic_qtr_samp = align_div(ro_qtr_samp, ic_qtr_samp)
    roic_qtr_samp['Value_'] = roic_qtr_samp['Value_'] * 100

    DF_roic_qtr = DF_roic_qtr.append(roic_qtr_samp, sort=False)
    
    batch_monitor_msg(i, tot_n, st_time)
batch_finish_msg(tot_n, st_time)

DF_roic_tot = substitute_Value(DF_roic_yr, DF_roic_qtr)
#*------------
firstCheck_duplicates(DF_roic_tot)
#*------------
# Map Code -> TMSRS_CD
# Should customize columns by needed ones.
# MUST HAVE 'BASE_DT', 'TMSRS_CD', 'Code', 'Value_', 'RGN_TP_CD', 'freq'
cols = ['BASE_DT', 'TMSRS_CD', 'Code', 'Value_yr', 'Value_qtr', 'Value_',
        'RGN_TP_CD', 'freq', 'ref']
DF_roic_tot = add_mapped_tick(DF_roic_tot, trim_codeMap)[cols]
DF_roic_tot['StyleName'] = 'ROIC'
#*------------
secondCheck_columns(DF_roic_tot)
#*------------
DF = DF_roic_tot

# Save!
save_batch(bkfil, DF, mapping, fileName)
コード例 #6
0
    cf_qtr_samp = WS_resample(seq_DT, cf_qtr, fill_cols=fill_cols)
    dv_qtr_samp = WS_resample(seq_DT, dv_qtr, fill_cols=fill_cols)
    cx_qtr_samp = WS_resample(seq_DT, cx_qtr, fill_cols=fill_cols)

    cols = ['BASE_DT', 'Code', 'FiscalPrd', 'Value_']
    cc_qtr_samp = align_add(cf_qtr_samp, dv_qtr_samp)
    cacqr_qtr_samp = align_div(cc_qtr_samp[cols], cx_qtr_samp)

    DF_CAcqR_qtr = DF_CAcqR_qtr.append(cacqr_qtr_samp, sort=False)

    batch_monitor_msg(i, tot_n, st_time)
batch_finish_msg(tot_n, st_time)

DF_CAcqR_tot = substitute_Value(DF_CAcqR_yr, DF_CAcqR_qtr)
#*------------
firstCheck_duplicates(DF_CAcqR_tot)
#*------------
# Map Code -> TMSRS_CD
# Should customize columns by needed ones.
# MUST HAVE 'BASE_DT', 'TMSRS_CD', 'Code', 'Value_', 'RGN_TP_CD', 'freq'
cols = [
    'BASE_DT', 'TMSRS_CD', 'Code', 'Value_yr', 'Value_qtr', 'Value_',
    'RGN_TP_CD', 'freq', 'ref'
]
DF_CAcqR_tot = add_mapped_tick(DF_CAcqR_tot, trim_codeMap)[cols]
DF_CAcqR_tot['StyleName'] = 'CAcqR'
#*------------
secondCheck_columns(DF_CAcqR_tot)
#*------------
DF = DF_CAcqR_tot
コード例 #7
0
    DF_nm_qtr_chg = DF_nm_qtr_chg.append(nm_qtr_chg_samp, sort=False)
    DF_opm_qtr_chg = DF_opm_qtr_chg.append(opm_qtr_chg_samp, sort=False)
    DF_ebitdam_qtr_chg = DF_ebitdam_qtr_chg.append(ebitdam_qtr_chg_samp,
                                                   sort=False)

    batch_monitor_msg(i, tot_n, st_time)
batch_finish_msg(tot_n, st_time)

DF_nm_tot = substitute_Value(DF_nm_yr, DF_nm_qtr)
DF_opm_tot = substitute_Value(DF_opm_yr, DF_opm_qtr)
DF_ebitdam_tot = substitute_Value(DF_ebitdam_yr, DF_ebitdam_qtr)
DF_nm_chg_tot = substitute_Value(DF_nm_yr_chg, DF_nm_qtr_chg)
DF_opm_chg_tot = substitute_Value(DF_opm_yr_chg, DF_opm_qtr_chg)
DF_ebitdam_chg_tot = substitute_Value(DF_ebitdam_yr_chg, DF_ebitdam_qtr_chg)
#*------------
firstCheck_duplicates(DF_nm_tot, DF_opm_tot, DF_ebitdam_tot, DF_nm_chg_tot,
                      DF_opm_chg_tot, DF_ebitdam_chg_tot)
#*------------
# Map Code -> TMSRS_CD
# Should customize columns by needed ones.
# MUST HAVE 'BASE_DT', 'TMSRS_CD', 'Code', 'Value_', 'RGN_TP_CD', 'freq'
cols = [
    'BASE_DT', 'TMSRS_CD', 'Code', 'Value_yr', 'Value_qtr', 'Value_',
    'RGN_TP_CD', 'freq', 'ref'
]
DF_nm_tot = add_mapped_tick(DF_nm_tot, trim_codeMap)[cols]
DF_opm_tot = add_mapped_tick(DF_opm_tot, trim_codeMap)[cols]
DF_ebitdam_tot = add_mapped_tick(DF_ebitdam_tot, trim_codeMap)[cols]
DF_nm_chg_tot = add_mapped_tick(DF_nm_chg_tot, trim_codeMap)[cols]
DF_opm_chg_tot = add_mapped_tick(DF_opm_chg_tot, trim_codeMap)[cols]
DF_ebitdam_chg_tot = add_mapped_tick(DF_ebitdam_chg_tot, trim_codeMap)[cols]
コード例 #8
0
    fcf_qtr_samp = align_subtract(cf_qtr_samp, cx_qtr_samp)
    ic_qtr_samp = align_add(db_qtr_samp, eq_qtr_samp, mi_qtr_samp)

    fcfroic_qtr_samp = align_div(fcf_qtr_samp, ic_qtr_samp)
    cfroic_qtr_samp = align_div(cf_qtr_samp, ic_qtr_samp)

    DF_fcfroic_qtr = DF_fcfroic_qtr.append(fcfroic_qtr_samp, sort=False)
    DF_cfroic_qtr = DF_cfroic_qtr.append(cfroic_qtr_samp, sort=False)

    batch_monitor_msg(i, tot_n, st_time)
batch_finish_msg(tot_n, st_time)

DF_cfroic_tot = substitute_Value(DF_cfroic_yr, DF_cfroic_qtr)
DF_fcfroic_tot = substitute_Value(DF_fcfroic_yr, DF_fcfroic_qtr)
#*------------
firstCheck_duplicates(DF_cfroic_tot, DF_fcfroic_tot)
#*------------
# Map Code -> TMSRS_CD
# Should customize columns by needed ones.
# MUST HAVE 'BASE_DT', 'TMSRS_CD', 'Code', 'Value_', 'RGN_TP_CD', 'freq'
cols = [
    'BASE_DT', 'TMSRS_CD', 'Code', 'Value_yr', 'Value_qtr', 'Value_',
    'RGN_TP_CD', 'freq', 'ref'
]
DF_cfroic_tot = add_mapped_tick(DF_cfroic_tot, trim_codeMap)[cols]
DF_fcfroic_tot = add_mapped_tick(DF_fcfroic_tot, trim_codeMap)[cols]
DF_cfroic_tot['StyleName'] = 'CFROIC'
DF_fcfroic_tot['StyleName'] = 'FCFROIC'
#*------------
secondCheck_columns(DF_cfroic_tot, DF_fcfroic_tot)
#*------------
コード例 #9
0
                                          bkfil=bkfil)

    # <<< Trim Date >>>
    (cfo2p_yr_samp,
     cfo2p_qtr_samp) = (trimDateSeq(seq_DT, DF)
                        for DF in [cfo2p_yr_samp, cfo2p_qtr_samp])

    DF_cfo2p_qtr = DF_cfo2p_qtr.append(cfo2p_qtr_samp, sort=False)
    DF_cfo2p_yr = DF_cfo2p_yr.append(cfo2p_yr_samp, sort=False)

    batch_monitor_msg(i, tot_n, st_time)
batch_finish_msg(tot_n, st_time)

DF_cfo2p_tot = substitute_Value(DF_cfo2p_yr, DF_cfo2p_qtr, val_col='zValue_')
#*------------
firstCheck_duplicates(DF_cfo2p_tot)
#*------------
# Map Code -> TMSRS_CD
# Should customize columns by needed ones.
# MUST HAVE 'BASE_DT', 'TMSRS_CD', 'Code', 'Value_', 'RGN_TP_CD', 'freq'
cols = [
    'BASE_DT', 'TMSRS_CD', 'Code', 'Value_yr', 'Value_qtr', 'Value_',
    'RGN_TP_CD', 'freq', 'ref'
]
DF_cfo2p_tot = add_mapped_tick(DF_cfo2p_tot, trim_codeMap)[cols]
DF_cfo2p_tot['StyleName'] = '5YRel_CFO2P'
#*------------
secondCheck_columns(DF_cfo2p_tot)
#*------------
DF = DF_cfo2p_tot
コード例 #10
0
    pfcf_DF = pfcf_DF[['BASE_DT', 'Code', 'freq', 'Value_']]
    pfcf_DF['Item'], pfcf_DF['Name'] = np.nan, 'PFCF_curr'
    pfcf_DF = pfcf_DF[(~pfcf_DF['Value_'].isin([np.Inf, -np.Inf]))
                      & pfcf_DF['Value_'].notnull()]

    TMP = reduce(lambda x, y: pd.DataFrame.append(x, y, sort=True),
                 [pe_DF, pb_DF, dy_DF, pc_DF, roe_DF, payout_DF, mktcap_DF])
    TMP['freq'] = 'curr'
    DF_Value = reduce(lambda x, y: pd.DataFrame.append(x, y, sort=True),
                      [DF_Value, TMP, ps_DF, pfcf_DF])

    batch_monitor_msg(i, tot_n, st_time)
batch_finish_msg(tot_n, st_time)

#*------------
firstCheck_duplicates(DF_Value, add_cols=['Name'])
#*------------
# Map Code -> TMSRS_CD
# Should customize columns by needed ones.
# MUST HAVE 'BASE_DT', 'TMSRS_CD', 'Code', 'Value_', 'RGN_TP_CD', 'freq'
cols = ['BASE_DT', 'TMSRS_CD', 'Code', 'Value_', 'RGN_TP_CD', 'freq', 'Name']
DF_Value = DF_Value.groupby('Name').apply(
    lambda x: add_mapped_tick(x, trim_codeMap))
DF_Value.index = DF_Value.index.droplevel(level=1)
DF_Value.reset_index(drop=True, inplace=True)
DF_Value = DF_Value[cols]

DF_Value.rename(columns={'Name': 'StyleName'}, inplace=True)
DF_Value['ref'] = None
#*------------
secondCheck_columns(DF_Value)
コード例 #11
0
DF_Momentum = DF_Momentum[cols].copy()

# check1
DF_Momentum.loc[DF_Momentum.duplicated(
    subset=['BASE_DT', 'TMSRS_CD', 'StyleName']),
                ['BASE_DT', 'TMSRS_CD', 'StyleName']]

DF_Momentum.drop_duplicates(subset=['BASE_DT', 'TMSRS_CD', 'StyleName'],
                            keep='first',
                            inplace=True)

# check2 - Should be Empty
DF_Momentum.loc[DF_Momentum.duplicated(
    subset=['BASE_DT', 'TMSRS_CD', 'StyleName']),
                ['BASE_DT', 'TMSRS_CD', 'StyleName']]

#*------------
firstCheck_duplicates(DF_Momentum, add_cols=['TMSRS_CD', 'StyleName'])
#*------------

#*------------
secondCheck_columns(DF_Momentum)
#*------------
DF = DF_Momentum

# Save!
save_batch(bkfil, DF, mapping, fileName)

from batch_utils.fill_monitor import print_fillReport

out = print_fillReport(bkfil, freq, DF)
コード例 #12
0
    ]
    d_qtr_samp = WS_resample(seq_DT, d_qtr, fill_cols=fill_cols)
    e_qtr_samp = WS_resample(seq_DT, e_qtr, fill_cols=fill_cols)

    cols = ['BASE_DT', 'Code', 'FiscalPrd', 'Value_']
    de_qtr_samp = align_div(d_qtr_samp, e_qtr_samp)
    de_qtr_samp = de_qtr_samp[de_qtr_samp['Value_'] >= 0]

    DF_de_qtr = DF_de_qtr.append(de_qtr_samp, sort=False)

    batch_monitor_msg(i, tot_n, st_time)
batch_finish_msg(tot_n, st_time)

DF_de_tot = substitute_Value(DF_de_yr, DF_de_qtr)
#*------------
firstCheck_duplicates(DF_de_tot)
#*------------
# Map Code -> TMSRS_CD
# Should customize columns by needed ones.
# MUST HAVE 'BASE_DT', 'TMSRS_CD', 'Code', 'Value_', 'RGN_TP_CD', 'freq'
cols = [
    'BASE_DT', 'TMSRS_CD', 'Code', 'Value_yr', 'Value_qtr', 'Value_',
    'RGN_TP_CD', 'freq', 'ref'
]
DF_de_tot = add_mapped_tick(DF_de_tot, trim_codeMap)[cols]
DF_de_tot['StyleName'] = 'LTDtE'
#*------------
secondCheck_columns(DF_de_tot)
#*------------
DF = DF_de_tot
コード例 #13
0
    DF_NIGr_qtr = DF_NIGr_qtr.append(NIgr_qtr_samp, sort=False)
    DF_DtE_qtr = DF_DtE_qtr.append(DtE_qtr_samp, sort=False)

    batch_monitor_msg(i, tot_n, st_time)
batch_finish_msg(tot_n, st_time)

DF_ROE_tot = substitute_Value(DF_ROE_yr, DF_ROE_qtr)
DF_ROA_tot = substitute_Value(DF_ROA_yr, DF_ROA_qtr)
DF_OPM_tot = substitute_Value(DF_OPM_yr, DF_OPM_qtr)
DF_NM_tot = substitute_Value(DF_NM_yr, DF_NM_qtr)
DF_GPM_tot = substitute_Value(DF_GPM_yr, DF_GPM_qtr)
DF_RevGr_tot = substitute_Value(DF_RevGr_yr, DF_RevGr_qtr)
DF_NIGr_tot = substitute_Value(DF_NIGr_yr, DF_NIGr_qtr)
DF_DtE_tot = substitute_Value(DF_DtE_yr, DF_DtE_qtr)
#*------------
firstCheck_duplicates(DF_ROE_tot, DF_ROA_tot, DF_OPM_tot, DF_NM_tot,
                      DF_GPM_tot, DF_RevGr_tot, DF_NIGr_tot, DF_DtE_tot)
#*------------
# Map Code -> TMSRS_CD
# Should customize columns by needed ones.
# MUST HAVE 'BASE_DT', 'TMSRS_CD', 'Code', 'Value_', 'RGN_TP_CD', 'freq'
cols = [
    'BASE_DT', 'TMSRS_CD', 'Code', 'Value_yr', 'Value_qtr', 'Value_',
    'RGN_TP_CD', 'freq', 'ref'
]
DF_ROE_tot = add_mapped_tick(DF_ROE_tot, trim_codeMap)[cols]
DF_ROA_tot = add_mapped_tick(DF_ROA_tot, trim_codeMap)[cols]
DF_OPM_tot = add_mapped_tick(DF_OPM_tot, trim_codeMap)[cols]
DF_NM_tot = add_mapped_tick(DF_NM_tot, trim_codeMap)[cols]
DF_GPM_tot = add_mapped_tick(DF_GPM_tot, trim_codeMap)[cols]
DF_RevGr_tot = add_mapped_tick(DF_RevGr_tot, trim_codeMap)[cols]
DF_NIGr_tot = add_mapped_tick(DF_NIGr_tot, trim_codeMap)[cols]
コード例 #14
0
            DF_.dropna(subset=['Code'], inplace=True)
            DF_['BASE_DT'] = DF_['BASE_DT'].dt.strftime('%Y%m%d')
            # last update typically has same-day expire_DT (need to divide)
            lst_DF = DF_[DF_['BASE_DT'] == seq_DT.max()].copy()
            bef_DF = DF_[DF_['BASE_DT'] != seq_DT.max()].copy()
            bef_DF = bef_DF.query('BASE_DT <= expire_DT')

            DF_trim = DF_trim.append(bef_DF, sort=False).append(lst_DF, sort=False)
    
    DF_ARM = DF_ARM.append(DF_trim)
    
    batch_monitor_msg(i, tot_n, st_time)
batch_finish_msg(tot_n, st_time)

#*------------
firstCheck_duplicates(DF_ARM)
#*------------
cols = ['TMSRS_CD', 'Code', 'RGN_TP_CD', 'PermRegion', 'startDT', 'endDT']
DF_ARM = add_mapped_tick(DF_ARM, trim_codeMap[cols].copy(), on=['Code', 'PermRegion'])

cols = ['BASE_DT', 'TMSRS_CD', 'Code', 'Value_', 'PermRegion']
DF_ARM = DF_ARM.loc[DF_ARM['Value_'].notnull(), cols].rename(
    columns={'PermRegion': 'RGN_TP_CD'})
DF_ARM['StyleName'], DF_ARM['freq'] = 'ARM_starmine', 'D'
#*------------
secondCheck_columns(DF_ARM)
#*------------

DF_EQ = pd.DataFrame()

# <<NA>>
コード例 #15
0
    cols = ['BASE_DT', 'Code', 'FiscalPrd', 'Value_']
    _acc_qtr_samp = align_subtract(cf_qtr_samp, ni_qtr_samp)
    accruals_qtr_samp = align_div(_acc_qtr_samp[cols], aa_qtr_samp)
    accrualsS_qtr_samp = align_div(_acc_qtr_samp[cols], rev_qtr_samp)

    DF_accruals_qtr = DF_accruals_qtr.append(accruals_qtr_samp, sort=False)
    DF_accrualsS_qtr = DF_accrualsS_qtr.append(accrualsS_qtr_samp, sort=False)

    batch_monitor_msg(i, tot_n, st_time)
batch_finish_msg(tot_n, st_time)

DF_accruals_tot = substitute_Value(DF_accruals_yr, DF_accruals_qtr)
DF_accrualsS_tot = substitute_Value(DF_accrualsS_yr, DF_accrualsS_qtr)
#*------------
firstCheck_duplicates(DF_accruals_tot, DF_accrualsS_tot)
#*------------
# Map Code -> TMSRS_CD
# Should customize columns by needed ones.
# MUST HAVE 'BASE_DT', 'TMSRS_CD', 'Code', 'Value_', 'RGN_TP_CD', 'freq'
cols = [
    'BASE_DT', 'TMSRS_CD', 'Code', 'Value_yr', 'Value_qtr', 'Value_',
    'RGN_TP_CD', 'freq', 'ref'
]
DF_accruals_tot = add_mapped_tick(DF_accruals_tot, trim_codeMap)[cols]
DF_accrualsS_tot = add_mapped_tick(DF_accrualsS_tot, trim_codeMap)[cols]

DF_accruals_tot['StyleName'] = 'Accruals'
DF_accrualsS_tot['StyleName'] = 'Accruals.S'
#*------------
secondCheck_columns(DF_accruals_tot, DF_accrualsS_tot)
コード例 #16
0
    evebitda_qtr_samp = align_div(ev_qtr_samp, eba_qtr_samp)
    cfoev_qtr_samp = align_div(cf_qtr_samp, ev_qtr_samp)
    fcfev_qtr_samp = align_div(fcf_qtr_samp, ev_qtr_samp)

    DF_evebitda_qtr = DF_evebitda_qtr.append(evebitda_qtr_samp, sort=False)
    DF_cfoev_qtr = DF_cfoev_qtr.append(cfoev_qtr_samp, sort=False)
    DF_fcfev_qtr = DF_fcfev_qtr.append(fcfev_qtr_samp, sort=False)

    batch_monitor_msg(i, tot_n, st_time)
batch_finish_msg(tot_n, st_time)

DF_evebitda_tot = substitute_Value(DF_evebitda_yr, DF_evebitda_qtr)
DF_cfoev_tot = substitute_Value(DF_cfoev_yr, DF_cfoev_qtr)
DF_fcfev_tot = substitute_Value(DF_fcfev_yr, DF_fcfev_qtr)
#*------------
firstCheck_duplicates(DF_evebitda_tot, DF_cfoev_tot, DF_fcfev_tot)
#*------------
# Map Code -> TMSRS_CD
# Should customize columns by needed ones.
# MUST HAVE 'BASE_DT', 'TMSRS_CD', 'Code', 'Value_', 'RGN_TP_CD', 'freq'
cols = [
    'BASE_DT', 'TMSRS_CD', 'Code', 'Value_yr', 'Value_qtr', 'Value_',
    'RGN_TP_CD', 'freq', 'ref'
]
DF_evebitda_tot = add_mapped_tick(DF_evebitda_tot, trim_codeMap)[cols]
DF_cfoev_tot = add_mapped_tick(DF_cfoev_tot, trim_codeMap)[cols]
DF_fcfev_tot = add_mapped_tick(DF_fcfev_tot, trim_codeMap)[cols]
DF_evebitda_tot['StyleName'] = 'EV2EBITDA'
DF_cfoev_tot['StyleName'] = 'CFO2EV'
DF_fcfev_tot['StyleName'] = 'FCF2EV'
#*------------
コード例 #17
0
# SGP = SustG / PE_f12m
A = DF_PEf12m[['BASE_DT', 'TMSRS_CD', 'Code', 'RGN_TP_CD',
               'Value_']].rename(columns={'Value_': 'PE_f12m'})
B = DF_SustG_tot[['BASE_DT', 'TMSRS_CD',
                  'Value_']].rename(columns={'Value_': 'SustG'})
DF_SGP_tot = pd.merge(A, B, on=['BASE_DT', 'TMSRS_CD'])

DF_SGP_tot['Value_'] = DF_SGP_tot['SustG'] / DF_SGP_tot['PE_f12m']
DF_SGP_tot['freq'], DF_SGP_tot['StyleName'] = 'M', 'SGP_f2yr'

# Append All Factors
#*------------
firstCheck_duplicates(DF_PEf12m,
                      DF_DYf12m,
                      DF_EPS_fwd,
                      DF_ROE_fwd,
                      DF_EGP_tot,
                      DF_SGP_tot,
                      add_cols=['RGN_TP_CD'])
#*------------
cols = [
    'BASE_DT', 'TMSRS_CD', 'Code', 'RGN_TP_CD', 'Value_', 'freq', 'StyleName'
]
#*------------
secondCheck_columns(DF_PEf12m[cols], DF_DYf12m[cols], DF_EPS_fwd[cols],
                    DF_ROE_fwd[cols], DF_EGP_tot[cols], DF_SGP_tot[cols])
#*------------
DF_GARP = reduce(lambda x, y: pd.DataFrame.append(x, y, sort=False), [
    DF_PEf12m[cols], DF_DYf12m[cols], DF_EPS_fwd[cols], DF_ROE_fwd[cols],
    DF_EGP_tot[cols], DF_SGP_tot[cols]
])
コード例 #18
0
    ]
    ac_qtr_samp = WS_resample(seq_DT, ac_qtr, fill_cols=fill_cols)
    rev_qtr_samp = WS_resample(seq_DT, rev_qtr, fill_cols=fill_cols)

    cols = ['BASE_DT', 'Code', 'FiscalPrd', 'Value_']
    ardays_qtr_samp = align_div(ac_qtr_samp, rev_qtr_samp)
    ardays_qtr_samp['Value_'] = -1 * ardays_qtr_samp['Value_'] * 365

    DF_ardays_qtr = DF_ardays_qtr.append(ardays_qtr_samp, sort=False)

    batch_monitor_msg(i, tot_n, st_time)
batch_finish_msg(tot_n, st_time)

DF_ardays_tot = substitute_Value(DF_ardays_yr, DF_ardays_qtr)
#*------------
firstCheck_duplicates(DF_ardays_tot)
#*------------
# Map Code -> TMSRS_CD
# Should customize columns by needed ones.
# MUST HAVE 'BASE_DT', 'TMSRS_CD', 'Code', 'Value_', 'RGN_TP_CD', 'freq'
cols = [
    'BASE_DT', 'TMSRS_CD', 'Code', 'Value_yr', 'Value_qtr', 'Value_',
    'RGN_TP_CD', 'freq', 'ref'
]
DF_ardays_tot = add_mapped_tick(DF_ardays_tot, trim_codeMap)[cols]
DF_ardays_tot['StyleName'] = 'ARDays'
#*------------
secondCheck_columns(DF_ardays_tot)
#*------------
DF = DF_ardays_tot