我正在对一系列数据和变量进行一些计算,并获得一些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])
有人可以让我知道如何在此处将所有Nan和infl值替换为零吗?
数据输出显示为:X是0 NaN1 0.0000002 0.0000003 -0.5839964 -0.663946...217 -0.370332218 -0.671487219 -0.432080220 -0.355075221 -0.899898名称:X_MngFut,长度:222,dtype:float64
HWM为0 0.0000001 0.0000002 0.0000003 0.0000004 0.000000...217 0.094699218 0.094699219 0.094699220 0.094699221 0.094699名称:ContrlMngFut_Return,长度:222,dtype:float64
DD为0 NaN1 NaN2 NaN3 inf4 inf...217 1.047079218 0.789772219 1.019615220 1.088973221 0.661590名称:ContrlMngFut_Return,长度:222,dtype:float64
MDD为0 NaN1 NaN2 NaN3 NaN4 NaN..217 NaN218 NaN219钠220 NaN221 NaN
非常感谢您的帮助。谢谢
当您使用fillna()时,它不会进行就地替换。因此将inplace参数设置为True。