aboutsummaryrefslogtreecommitdiffstats
path: root/python/analytics/index_data.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/analytics/index_data.py')
-rw-r--r--python/analytics/index_data.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/python/analytics/index_data.py b/python/analytics/index_data.py
index 48aa9331..6f0a5749 100644
--- a/python/analytics/index_data.py
+++ b/python/analytics/index_data.py
@@ -128,9 +128,10 @@ def index_returns(df=None, index=None, series=None, tenor=None, from_date=None,
df = df.reset_index('date').join(coupon_data).reset_index('tenor')
df.tenor = df.tenor.astype(tenor_t)
df = df.set_index(['tenor'], append=True)
- df['day_frac'] = (df.groupby(level=['index', 'series', 'tenor']).diff().
- date.
- astype('timedelta64[D]') / 360)
+ df['day_frac'] = (df.groupby(level=['index', 'series', 'tenor'])['date'].
+ transform(lambda s: s.
+ diff().
+ astype('timedelta64[D]') / 360))
df['price_return'] += df.day_frac * df.coupon
df = df.drop(['day_frac', 'coupon', 'maturity'], axis=1)
return df.set_index(['date'], append=True)
@@ -175,12 +176,12 @@ def _get_singlenames_curves(index_type, series, trade_date, tenors):
sn_quotes = get_singlenames_quotes(f"{index_type.lower()}{series}",
trade_date)
currency = "EUR" if index_type in ["XO", "EU"] else "USD"
- args = (tenors, currency)
+ args = (np.array(tenors), currency)
return build_curves_dist(sn_quotes, args)
def get_singlenames_curves(index_type, series, trade_date,
- tenors=np.array([0.5, 1, 2, 3, 4, 5, 7, 10])):
+ tenors=(0.5, 1, 2, 3, 4, 5, 7, 10)):
if isinstance(trade_date, pd.Timestamp):
trade_date = trade_date.date()
return _get_singlenames_curves(index_type, series,