diff options
| -rw-r--r-- | python/globeop_reports.py | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/python/globeop_reports.py b/python/globeop_reports.py index cffe58ba..d491a61d 100644 --- a/python/globeop_reports.py +++ b/python/globeop_reports.py @@ -7,15 +7,12 @@ import load_globeop_report as load_globeop def get_monthly_pnl(): sql_string = "SELECT * FROM pnl_reports" - df_pnl = pd.read_sql_query(sql_string, dbengine('dawndb'), parse_dates=['date']) - df_pnl = df_pnl.set_index('date') - zero_factor = df_pnl[df_pnl.invid.str.match('^.{9}_A$')]['invid'].unique() - df_pnl.invid = df_pnl.invid.apply(lambda x: x[:9] if x in zero_factor.tolist() else x) + df_pnl = pd.read_sql_query(sql_string, dbengine('dawndb'), parse_dates=['date'], + index_col=['date']) + df_pnl.invid = df_pnl.invid.str.replace("_A$", "") pnl_cols = ['bookunrealmtm', 'bookrealmtm', 'bookrealincome', 'bookunrealincome', 'totalbookpl'] - df_pnl = df_pnl.reset_index().groupby(['date','invid']).sum().reset_index('invid') - df_pnl = df_pnl.groupby('invid').resample('M').last()[['mtd'+col for col in pnl_cols]] - df_pnl.index.names = ['identifier','date'] - return df_pnl.reset_index() + monthend_pnl = df_pnl.groupby(pd.TimeGrouper('M')).apply(lambda df: df.loc[df.index[-1]]) + return monthend_pnl.groupby(['date', 'invid'])[['mtd' + col for col in pnl_cols]].sum() def curr_port_PNL(date = datetime.date.today(), asset_class='Subprime'): sql_string = "SELECT * FROM risk_positions(%s, %s) WHERE notional > 0" @@ -66,4 +63,3 @@ if __name__=='__main__': nav = check_valuation() df_pnl = trade_performance() df_curr_port = curr_port_PNL() - |
