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

2024-09-27 21:27:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道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 

Tags: 数据returnde代表prodinfaxisvel
1条回答
网友
1楼 · 发布于 2024-09-27 21:27:41

序列中一定有一个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

相关问题 更多 >

    热门问题