aboutsummaryrefslogtreecommitdiffstats
path: root/python/calibrate_tranches_BC.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/calibrate_tranches_BC.py')
-rw-r--r--python/calibrate_tranches_BC.py15
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()