如何用一系列值中的0替换Nan和Inf值

问题描述 投票:-1回答:1

我正在对一系列数据和变量进行一些计算,并获得一些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

非常感谢您的帮助。谢谢

python pandas numpy nan
1个回答
0
投票

当您使用fillna()时,它不会进行就地替换。因此将inplace参数设置为True。

© www.soinside.com 2019 - 2024. All rights reserved.