2017-02-02 5 views
1
    Data  flag 
2017-01-01  17.2  False  
2017-01-02  17.0  False  
2017-01-03  16.8  False 
2017-01-04  18.3  False  
2017-01-05  19.1  True  
... 
2017-12-28  20.1  False  
2017-12-29  19.8  False  
2017-12-30  18.9  False  
2017-12-31  19.5  False  

값과 플래그가있는 팬더 데이터 프레임이 있습니다. 플래그가 "NOT TRUE"이면 롤링 (window = 30)으로 평균값을 계산하려고합니다. df.flag이 거짓합니다 (~ 운영자가 df.flagFalse입니다 모든 값을 받고, 부울 시리즈의 진리를 반전) 여기서롤링에 의한 조건부 평균

+1

길이가 30 인 창이 있다고 가정하고, 길이가 30이 아닌 창과 관련하여 평균을 계산하려고합니까? 창은 30 개 미만의 하위 집합을 의미합니까? 아니면'True'를 뛰어 넘어 30 개 기간을 모으고 싶습니까? – piRSquared

+0

후자. Trues를 건너 뛰고 30 개의 거짓된 기간을 수집하고 싶습니다. – Lcy

+0

그러면 @ASGM이 답을 얻습니다. – piRSquared

답변

3

에 dataframe을 부분 집합 동안은 pandas.rolling_mean()를 사용할 수있는 경우에만 항목을 포함한다.

pandas.rolling_mean(df[~df.flag], window=30) 
관련 문제