2014-09-05 6 views
4

제 데이터가 매일 카운트이고 인덱스에 DateTimeIndex 컬럼이 있다고 가정하십시오. 과거 평일의 평균치를 구할 수있는 방법이 있습니까? 예를 들어, 날짜가 8 월 15 일 일요일 인 경우, 8 월 8 일 일요일, 1 월 8 일 일요일 ...)에 대한 평균을 구하고 싶습니다.팬더 데이터 프레임에 대한 지난 N 평일 평균을 얻으십시오.

나는 어제 팬더를 사용하기 시작 했으므로 여기에 내가 강압 한 내용이있다.

# df is a dataframe with an DateTimeIndex 
# brute force for count last n weekdays, wherelnwd = last n weekdays 
def lnwd(n=1): 
    lnwd, tmp = df.shift(7), df.shift(7) # count last weekday 
    for i in xrange(n-1): 
     tmp = tmp.shift(7) 
     lnwd += tmp 
    lnwd = lnwd/n # average 
    return lnwd 

하나의 라이너가 있어야합니까? apply() (n 변수가 있기 때문에 for 루프가있는 함수를 전달하지 않고) 또는 groupby의 형식을 사용하는 방법이 있습니까? 예를 들어, 평일의 모든 데이터의 평균을 찾는 방법은 다음과 같습니다.

+0

DateTimeIndex위한 weekofyear 방법이있다 :

이 (일련 s와) 같은 뭔가를 제공해야합니다. http://pandas.pydata.org/pandas-docs/version/0.13.1/generated/pandas.DatetimeIndex.html을 참조하십시오. –

답변

관련 문제