Как заменить значения Nan и Inf на 0 в серии значений - PullRequest
0 голосов
/ 20 марта 2020

Я делаю некоторые вычисления для ряда данных, а также переменных, и получаю некоторые значения Nan, а также значения Infl. Я пытаюсь заменить их нулями

Я пытался использовать .fillna ( 0), но, похоже, не вносит никаких изменений в результаты ..

Вот мой код:

HWM_CntrMngFut = np.maximum.accumulate(data.ContrlMngFut_Return) #Compute High Water Marker 
 - the running maximum
DD_CntrMngFut = (HWM_CntrMngFut - data.ContrlMngFut_Return)/HWM_CntrMngFut #Drawdown

DD_CntrMngFut.fillna(0)

MDD_CntrMngFut = np.maximum.accumulate(DD_CntrMngFut) #Maximum Drawdown with control

print ("X is", data.X_MngFut )
print ("HWM is", HWM_CntrMngFut)
print ("DD is", DD_CntrMngFut)
print ("MDD is", MDD_CntrMngFut)


i_CntrMngFut = np.argmax(HWM_CntrMngFut - data.ContrlMngFut_Return)

print ("Maximum Drawdown for Managed Futures Without Control is %",MDD_MngFut[i_MngFut])
print ("Maximum Drawdown for Managed Futures With Control is 
 %",MDD_CntrMngFut[i_CntrMngFut])

Может кто-нибудь, пожалуйста, дайте мне знать, как заменить все Нан и здесь значения infl с нулем?

Выходные данные выводятся в виде: X равно 0 NaN 1 0.000000 2 0.000000 3 -0.583996 4 -0.663946 ...
217 -0.370332 218 -0.671487 219 -0.432080 220 - 0,355075 221 -0,899898 Имя: X_MngFut, длина: 222, dtype: float64

HWM 0 0,000000 1 0,000000 2 0,000000 3 0,000000 4 0,000000 ...
217 0,094699 218 0,094699 219 0,094699 220 0,094699 221 0,094699 221 0,09 : ContrlMngFut_Return, длина: 222, тип d: float64

DD равен 0 NaN 1 NaN 2 NaN 3 inf 4 inf ...
217 1.047079 218 0.789772 219 1.019615 220 1.088973 221 0.661590 Имя: ContrlMngFut_Return, длина: 2 22, dtype: float64

MDD равен 0 NaN 1 NaN 2 NaN 3 NaN 4 NaN .. 217 NaN 218 NaN 219 NaN 220 NaN 221 NaN

Любая помощь очень ценится. Спасибо

1 Ответ

0 голосов
/ 20 марта 2020

когда вы используете fillna (), он не выполняет замену на месте. поэтому установите для параметра inplace значение True.

DD_CntrMngFut.fillna(0,inplace=True)

Надеюсь, это сработает!

...