2017-12-12 1 views
1

아래 코드에서 생성 된 목록에서 NaN을 삭제하는 데 도움이 필요합니다. 저는 '가격'이라고 표시된 숫자 목록의 기하 평균을 계산하려고합니다. 순차적 숫자 사이의 백분율 변화를 계산할 수는 있지만 목록의 제품을 가져 가면 throw되는 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

retlist 목록에는 NaN이 포함되어 있습니다.

는 다음과 같은 코드를 사용하여 단계가 NaN 제거하는 추가 할 수 있습니다

retlist = [i for indx, i in enumerate(retlist) if filter[indx] == True]

당신이 다른 단계를 따를 수 있습니다 이후. 목록의 크기가 변경된다는 점에 유의하십시오.

관련 문제