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) #*------------ DF = DF_accruals_tot.append(DF_accrualsS_tot) # Save! save_batch(bkfil, DF, mapping, fileName) from batch_utils.fill_monitor import print_fillReport out = print_fillReport(bkfil, freq, DF)
DF_Payout_trail['Value_'].notnull()].sort_values(['Code', 'BASE_DT']).copy() DF_Payout_trail.loc[DF_Payout_trail['Value_'] > 100, 'Value_'] = 100 DF_epsg_trail = DF_epsg_trail[DF_epsg_trail['Value_'].notnull()].sort_values( ['Code', 'BASE_DT']).copy() DF_ROE_trail.reset_index(drop=True, inplace=True) DF_Payout_trail.reset_index(drop=True, inplace=True) DF_epsg_trail.reset_index(drop=True, inplace=True) cols = [ 'BASE_DT', 'TMSRS_CD', 'Code', 'Value_yr', 'Value_qtr', 'Value_', 'RGN_TP_CD', 'freq', 'ref' ] DF_ROE_trail = add_mapped_tick(DF_ROE_trail, trim_codeMap)[cols] DF_Payout_trail = add_mapped_tick(DF_Payout_trail, trim_codeMap)[cols] DF_epsg_trail = add_mapped_tick(DF_epsg_trail, trim_codeMap)[cols] DF_ROE_trail['StyleName'] = 'ROE_l2yr' DF_Payout_trail['StyleName'] = 'Payout_l2yr' DF_epsg_trail['StyleName'] = 'EPSg_l2yr' #*------------ secondCheck_columns(DF_ROE_trail, DF_Payout_trail, DF_epsg_trail) #*------------ DF = reduce(lambda x, y: pd.DataFrame.append(x, y, sort=False), [DF_ROE_trail, DF_Payout_trail]) DF.reset_index(drop=True, inplace=True)
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 # Save! save_batch(bkfil, DF, mapping, fileName) from batch_utils.fill_monitor import print_fillReport out = print_fillReport(bkfil, freq, DF)
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 # Save! save_batch(bkfil, DF, mapping, fileName) from batch_utils.fill_monitor import print_fillReport out = print_fillReport(bkfil, freq, DF)
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']] A0.rename(columns={'ROE_fy0': 'Value_'}, inplace=True) A0['Value_'] = A0['Value_'].apply(lambda x: np.sign(x) * 100 if np.abs(x) > 100 else x)
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' #*------------ secondCheck_columns(DF_evebitda_tot, DF_cfoev_tot, DF_fcfev_tot) #*------------ DF = DF_evebitda_tot.append(DF_cfoev_tot, sort=False).append(DF_fcfev_tot, sort=False) # Save! save_batch(bkfil, DF, mapping, fileName) from batch_utils.fill_monitor import print_fillReport
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] DF_nm_tot['StyleName'] = 'NM' DF_opm_tot['StyleName'] = 'OPM' DF_ebitdam_tot['StyleName'] = 'EBITDAM' DF_nm_chg_tot['StyleName'] = 'NM_l2yrAvg_chg' DF_opm_chg_tot['StyleName'] = 'OPM_l2yrAvg_chg' DF_ebitdam_chg_tot['StyleName'] = 'EBITDAM_l2yrAvg_chg' #*------------ secondCheck_columns(DF_nm_tot, DF_opm_tot, DF_ebitdam_tot, DF_nm_chg_tot, DF_opm_chg_tot, DF_ebitdam_chg_tot)
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) #*------------ DF = DF_cfroic_tot.append(DF_fcfroic_tot) # Save! save_batch(bkfil, DF, mapping, fileName) from batch_utils.fill_monitor import print_fillReport out = print_fillReport(bkfil, freq, 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 # Save! save_batch(bkfil, DF, mapping, fileName) from batch_utils.fill_monitor import print_fillReport out = print_fillReport(bkfil, freq, 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) #*------------ # Save! save_batch(bkfil, DF_Value, mapping, fileName) from batch_utils.fill_monitor import print_fillReport out = print_fillReport(bkfil, freq, DF_Value)
handle_ax.get_RM() DF = handle_ax.factor_exp[['ShortTermMomentum', 'MediumTermMomentum']].copy() DF.reset_index(drop=False, inplace=True) DF['BASE_DT'] = handle_ax.requestDate DF['Sedol'] = DF['SEDOL'].str[:6] DFmelt = DF.melt(id_vars=['BASE_DT', 'SEDOL', 'Sedol'], value_vars=['ShortTermMomentum', 'MediumTermMomentum'], var_name='StyleName', value_name='Value_') DFmelt.dropna(axis=0, subset=['SEDOL'], inplace=True) DF_ = add_mapped_tick(DFmelt, trim_codeMap, on=['Sedol']) DF_['freq'] = 'D' DF_.rename(columns={'mstrCtry': 'ref'}, inplace=True) DF_Momentum = DF_Momentum.append(DF_) batch_monitor_msg(i, tot_n, st_time, add_msg=dt_) batch_finish_msg(tot_n, st_time) DF_Momentum.rename(columns={'SEDOL': 'Code'}, inplace=True) cols = [ 'BASE_DT', 'TMSRS_CD', 'Code', 'Sedol', 'RGN_TP_CD', 'Value_', 'freq', 'ref', 'StyleName' ] DF_Momentum = DF_Momentum[cols].copy() # check1
batch_monitor_msg(i, tot_n, st_time) batch_finish_msg(tot_n, st_time) DF_IBES_EPS.sort_values(['RGN_TP_CD', 'Code', 'BASE_DT'], inplace=True) DF_IBES_EPS.reset_index(drop=True, inplace=True) DF_IBES_EPS = chg_to_type(DF_IBES_EPS, chg_col=['BASE_DT', 'Code', 'RGN_TP_CD'], type_=str) #*------------ firstCheck_duplicates(DF_IBES_EPS, add_cols=['RGN_TP_CD']) #*------------ DF_IBES_EPS = add_mapped_tick(DF_IBES_EPS, 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', 'EPS_fy0', 'EPS_fy1', 'EPS_fy2', 'EPSg_2yr', 'EPSchg_2yr', 'PE_f12m' ] DF_IBES_EPS = DF_IBES_EPS.loc[DF_IBES_EPS['Median1'].notnull(), cols] DF_IBES_EPS['StyleName'] = 'IBES_EPS' DF_IBES_EPS.sort_values(['TMSRS_CD', 'RGN_TP_CD', 'BASE_DT'], inplace=True) DF_IBES_EPS.drop_duplicates(['TMSRS_CD', 'BASE_DT'], keep='first', inplace=True)
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] DF_DtE_tot = add_mapped_tick(DF_DtE_tot, trim_codeMap)[cols] DF_ROE_tot['StyleName'] = RatioItem_lst.loc['ROE_ws'].name DF_ROA_tot['StyleName'] = RatioItem_lst.loc['ROA_ws'].name DF_OPM_tot['StyleName'] = RatioItem_lst.loc['OPM_ws'].name DF_NM_tot['StyleName'] = RatioItem_lst.loc['NM_ws'].name DF_GPM_tot['StyleName'] = RatioItem_lst.loc['GPM_ws'].name DF_RevGr_tot['StyleName'] = RatioItem_lst.loc['REVg_l1yr_ws'].name DF_NIGr_tot['StyleName'] = RatioItem_lst.loc['NIg_l1yr_ws'].name
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>> # Transform Security List into Batch Chunks trim_codeMap_uniq = trim_codeMap.loc[trim_codeMap['PermRegion'] == '1', 'Code'].unique() print('>>> Total NA Performing Securities #: {}'.format(trim_codeMap_uniq.shape[0]))
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 # Save! save_batch(bkfil, DF, mapping, fileName) from batch_utils.fill_monitor import print_fillReport out = print_fillReport(bkfil, freq, DF)
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 # Save! save_batch(bkfil, DF, mapping, fileName) from batch_utils.fill_monitor import print_fillReport out = print_fillReport(bkfil, freq, DF)