diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/calibrate_tranches_BC.py | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/python/calibrate_tranches_BC.py b/python/calibrate_tranches_BC.py index 7ea71277..3e28b1d9 100644 --- a/python/calibrate_tranches_BC.py +++ b/python/calibrate_tranches_BC.py @@ -1,3 +1,4 @@ +from math import isnan from serenitas.analytics.tranche_basket import TrancheBasket, MarkitTrancheBasket from serenitas.analytics.dates import prev_business_day import datetime @@ -225,9 +226,21 @@ if __name__ == "__main__": df["calibrated_price"] = tranche_index.tranche_pvs().bond_price data[d] = df + def NaNtoNone(v): + if isinstance(v, float) and isnan(v): + return None + else: + return v + if data: data = pd.concat(data) sql_str = build_sql_str(data, args.markit) with serenitas_conn.cursor() as c: - c.executemany(sql_str, data.to_dict(orient="records")) + c.executemany( + sql_str, + map( + lambda d: {k: NaNtoNone(v) for k, v in d.items()}, + data.to_dict(orient="records"), + ), + ) serenitas_conn.commit() |
