제 데이터가 매일 카운트이고 인덱스에 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
의 형식을 사용하는 방법이 있습니까? 예를 들어, 평일의 모든 데이터의 평균을 찾는 방법은 다음과 같습니다.
DateTimeIndex위한 weekofyear 방법이있다 :
이 (일련
s
와) 같은 뭔가를 제공해야합니다. http://pandas.pydata.org/pandas-docs/version/0.13.1/generated/pandas.DatetimeIndex.html을 참조하십시오. –