繁体   English   中英

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

[英]How to Replace Nan and Inf values with 0 in series of values

我正在对一系列数据和变量进行一些计算,并得到一些 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 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 名称:ContrlMngFut_Return,长度:222,dtype: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,长度:222,dtype:float64

MDD 是 0 NaN 1 NaN 2 NaN 3 NaN 4 NaN .. 217 NaN 218 NaN 219 NaN 220 NaN 221 NaN

任何帮助是极大的赞赏。 谢谢

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

DD_CntrMngFut.fillna(0,inplace=True)

希望这会奏效!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM