У меня есть датафрейм, который содержит избыточные доходы для целого ряда средств.Для дат, на которые данные недоступны (т. Е. Фонд еще не создан), фрейм данных возвращает nan.
Fund1 Fund2
31/10 / 2016 nan 0.01 30/11/2016 nan 0.05 31/12/2016 nan0,002 31/01/2017 nan -0,023 ... .. ... 31/10/2018 0,01 0,05 30/11/2018 0,003 0,06 31/12/2018 0,01 0,023
Я пытаюсь вычислить отслеживаниеошибка за последние 1 и 2 года с использованием приведенной ниже функции.Для фондов, у которых недостаточно данных для расчета ошибки отслеживания за 2 года (поскольку фонд был создан 1,5 года назад), я хотел бы, чтобы функция возвращала NaN.
Моя функция:
def calc_tracking_error_2Y (data, freq_per_year = 12, tenor_timestep = 24):
if len(data)>=tenor_timestep:
tracking_error_Y=data.iloc[tenor_timestep:].std()*np.sqrt(freq_per_year)
else:
tracking_error_Y = np.nan
return tracking_error_Y
Моя проблема в том, что функция не возвращает NaNдля фондов, которые не имеют достаточных точек данных, вместо этого он возвращает число.Можете ли вы посоветовать, как мне написать функцию, чтобы получить nan для фондов, у которых недостаточно данных?
Большое спасибо заранее