我需要一些帮助从下面的代码中生成的列表中删除NaN。我正在尝试计算标有“价格”的数字列表的几何平均值。我可以得到计算序列号之间的百分比变化,但是当我去获取列表的产品时,有一个NaN抛出了。我尝试了pandas.dropna(),但它没有丢弃任何东西并给了我相同的输出。任何建议,将不胜感激。 感谢。
import pandas as pd
import math
import numpy as np
prices = [2,3,4,3,1,3,7,8]
prices = pd.Series(prices)
prices = prices.iloc[::-1]
retlist = list(prices.pct_change())
retlist.reverse()
print(retlist)
calc = np.array([x + 1 for x in retlist])
print(calc)
def product(P):
p = 1
for i in P:
p = i * p
return p
print(product(calc))
答案 0 :(得分:0)
retlist
一个包含NaN的列表。
您可以使用以下代码添加一个删除NaN的步骤:
retlist = [i for indx, i in enumerate(retlist) if filter[indx] == True]
在此之后,您可以按照其他步骤进行操作。请注意列表的大小更改