2013-01-14 4 views
1

내가 함께 rollng_mean 계산할 때 값 누락 많이 있습니다 pandas.rolling_mean누락 된 값이

In [14]: px 
Out[14]: 
<class 'pandas.core.frame.DataFrame'> 
DatetimeIndex: 2836 entries, 2002-01-14 00:00:00 to 2013-01-11 00:00:00 
Data columns: 
BELG.BR 2270 non-null values 
MSFT  2769 non-null values 
dtypes: float64(2) 

In [15]: sma200 
Out[15]: 
<class 'pandas.core.frame.DataFrame'> 
DatetimeIndex: 2836 entries, 2002-01-14 00:00:00 to 2013-01-11 00:00:00 
Data columns: 
BELG.BR 689 non-null values 
MSFT  400 non-null values 
dtypes: float64(2) 

sma200 rolling_mean 대부분의 값이 누락 된 이유는 어떤 생각과 전체 목록을 얻는 방법?

답변

3

px.ffill()DataFrame을 반환합니다. px 자체를 수정하려면 inplace = True을 사용하십시오.

px.ffill(inplace = True) 
sma200 = pd.rolling_mean(px, 200) 
print(sma200) 

Data columns: 
BELG.BR 2085 non-null values 
MSFT  2635 non-null values 
dtypes: float64(2) 
2

sma200을 인쇄하면 null 또는 누락 된 값이 많이 나타날 수 있습니다. 이는 0 이외의 수에 대한 임계 값이 기본적으로 rolling_mean에 대해 높기 때문입니다.

pandas docs에서

sma200 = pd.rolling_mean(px, 200, min_periods=2) 

사용해보십시오 :

min_periods가 :

또한 시도 할 수 (NA를, 그렇지 않으면입니다 결과) null 이외의 데이터 포인트의 임계 값을 요구하는 데이터 집합에 여러 점이 누락 된 경우 창의 크기가 변경됩니다.

+0

확인 감사를 얻을 수 있습니다. ffill로 해결할 수없는 이유는 무엇입니까? – ronnydw

+1

당신은'inplace = True'를'ffill' 호출로 전달함으로써 in-place를 사용해야합니다. – jozzas

관련 문제