Dec-30-2020, 04:17 PM
This works:
Is there an easier way or is this how it must be done?
ES_mean = comp_df.iloc[:,0].mean(); print('ES_Cum_%ROI mean is {:.2%}'.format(ES_mean)) Port_mean = comp_df.iloc[:,1].mean(); print('Port_Cum_%ROI mean is {:.2%}'.format(Port_mean)) ES_worst = comp_df.iloc[:,0].min(); Port_worst = comp_df.iloc[:,1].min() ES_std = comp_df.iloc[:,0].std(); Port_std = comp_df.iloc[:,1].std() print('ES worst = {:.2%}'.format(ES_worst)); print('Port worst = {:.2%}'.format(Port_worst)) holder = comp_df.agg({'ES_Cum_%ROI':['mean', 'std'], 'Port_Cum_%ROI':['mean','std']}) #computing agg before formatting to % format_mapping2 = {'ES_Cum_%ROI':'{:.2%}','Port_Cum_%ROI':'{:.2%}','Port_Marg_Tot':'{:.2f}'} for key, value in format_mapping2.items(): comp_df[key] = comp_df[key].apply(value.format) print(comp_df) pd.options.display.float_format = '{:.2%}'.format print(holder)Because I couldn't process after formatting, I had to add line 6 and call it in line 12. I also had to format twice: lines 7-9 and 11.
Is there an easier way or is this how it must be done?