diff options
| -rw-r--r-- | python/reto.py | 36 |
1 files changed, 12 insertions, 24 deletions
diff --git a/python/reto.py b/python/reto.py index d773c354..5ce435de 100644 --- a/python/reto.py +++ b/python/reto.py @@ -1,23 +1,14 @@ import datetime -import globeop_reports as go import pandas as pd import numpy as np import argparse -from pandas.tseries.offsets import BDay, MonthEnd, BMonthEnd, CustomBusinessMonthEnd - -from risk.bonds import subprime_risk, crt_risk, clo_risk from risk.portfolio import build_portfolio, generate_vol_surface -from pnl_explain import get_bond_pv import serenitas.analytics as ana -from serenitas.analytics.index_data import load_all_curves from serenitas.analytics.scenarios import run_portfolio_scenarios -from serenitas.analytics.basket_index import BasketIndex from serenitas.analytics.base import Trade from serenitas.utils.db2 import dbconn -from serenitas.utils.pool import serenitas_pool, dawn_pool -from serenitas.utils.db import serenitas_engine, dawn_engine from serenitas.analytics.dates import prev_business_day @@ -100,23 +91,20 @@ def gen_spreads(shock_date, fund): return results -def transform_df(df): - df = df.rename( - columns={ - "spread_shock": "spread_shock", - "CASH_BASIS": "CASH_BASIS", - "HEDGE_CLO": "HEDGE_CLO", - } - ) - df = df.reset_index().rename(columns={"level_0": "unit"}) - strategy_columns = df.columns[3:] - df = pd.melt( - df, id_vars=["unit", "date", "spread_shock"], value_vars=strategy_columns +def process_dataframe(raw_df): + """Clean and transform the input dataframe to insert into database.""" + transformed_df = raw_df.reset_index(drop=True) + transformed_df = transformed_df.rename(columns={"level_0": "unit"}) + strategy_columns = transformed_df.columns[3:] + transformed_df = pd.melt( + transformed_df, + id_vars=["unit", "date", "spread_shock"], + value_vars=strategy_columns, ) - df = df.rename( + transformed_df = transformed_df.rename( columns={"variable": "strategy", "value": "value", "unit": "output_type"} ) - return df + return transformed_df if __name__ == "__main__": @@ -133,6 +121,6 @@ if __name__ == "__main__": ), ) conn.commit() - df = transform_df(results) + df = process_dataframe(results) df["fund"] = fund df.to_sql("shocks", dawn_engine, if_exists="append", index=False) |
