熊猫中.prod的结果给了我一个inf编号,我怎么能看到结果



我知道inf代表什么。

我要做的是:我要把数据帧中的每个值相乘。

variavel_de_transformacao_1=variavel_de_transformacao_1.prod(axis=0)

但结果我得到了一个我无法表示的inf数。有人能帮我吗?

return 
1        1.000004
2        1.000002
3        1.000320
4        0.999982
5        0.998743
...
252       1.000432    

但我的结果是:

variável_de_transformacao_1= inf 

系列中的某个位置必须有一个numpy.inf。如果您使用类似final price / initial price的表达式计算回报,那么只要初始价格为零,就会出现inf值。

您可以通过调用来验证这一点

>>> assert not numpy.isinf(variavel_de_transformacao_1).any()
>>> assert numpy.isfinite(variavel_de_transformacao_1).all()

我试着在一个包含所有大于1.0的正值的系列上调用prod,看看它是否会溢出。

>>> s = pandas.Series(numpy.full(fill_value=1.01, shape=252))
>>> s.prod()
12.274002099240246

尝试使用更大的数字,产品不是inf:

for value in [1.0, 1.01, 1.05, 1.25, 1.50]:
s = pandas.Series(numpy.full(fill_value=value, shape=252))
print("{:4.2f}:    {:30.2f}".format(value, s.prod()))
Uniform elem. value             Product
1.00:                              1.00
1.01:                             12.27
1.05:                         218626.78
1.25:      2638294536026986064642048.00
1.50:    237135886481351290441812215478402248179974144.00

最新更新