2016-11-24 7 views
1

나는 1204 일에 걸쳐 매일 빈도에 대한 시간 세리에가있다. 365D 기준 (합계 기준)으로 리샘플링하고 싶지만 365D의 배수가 아닌 3,29 * 365D를 기준으로 시간 세리가 실행됩니다. 기본적으로 resample은 4 줄을 반환합니다. 내가 적용하는 경우팬더 - 주파수의 배수가 아닌 경우 리샘플링 하시겠습니까?

DATE 
2012-08-12 15350.0 
2012-08-19 11204.0 
2012-08-26 11795.0 
2012-09-02 15160.0 
2012-09-09  9991.0 
2012-09-16 12337.0 
2012-09-23 10721.0 
2012-09-30  9952.0 
2012-10-07 11903.0 
2012-10-14  8537.0 
       ... 
2015-09-27 14234.0 
2015-10-04 17917.0 
2015-10-11 13610.0 
2015-10-18  8716.0 
2015-10-25 15191.0 
2015-11-01  8925.0 
2015-11-08 13306.0 
2015-11-15  8884.0 
2015-11-22 11527.0 
2015-11-29  6859.0 

df.index.max() - df.index.min() 
Timedelta('1204 days 00:00:00') 

:

df.resample('365D').sum() 

내가 가진 :

그것은 마지막 빈 것 같아
DATE 
2012-08-12 536310.0 
2013-08-12 555016.0 
2014-08-12 569548.0 
2015-08-12 245942.0 
Freq: 365D, dtype: float64 

보다 작 덮고있는 하나 여기

는 원시 데이터입니다 365 일. resample을 결과에서 제외하려면 어떻게해야합니까?

+0

당신이 여기 당신의 몇 가지 예를 들어 데이터를 넣을 수 있습니다 올해의 시작/끝으로 샘플링을 고려할 수 있습니다? – tworec

+1

일부 코드 스 니펫과 샘플 데이터를 추가하십시오. –

+0

@tworec : 예제가 추가되었습니다. 감사합니다. – Bkyn

답변

1

df.resample('365D')은 색인에서 가장 낮은 날짜에 샘플링을 시작합니다. 그래서 마지막 빈은 거의 모든 날을 덮지 않을 것입니다. 그냥 건너 뛰고 그

df.resample('365D').sum()[:-1] 

또한

df.resample('A').sum() 
+0

감사합니다. 가장 높은 날에 샘플을 마무리 할 수 ​​있도록하여 전체 빈이 가장 최근의 것입니까? 그리고 첫 번째 빈을 건너 뜁니다. – Bkyn

+0

모든 것이 가능합니다. :) 가장 높은 날짜를 사용하려면 가장 낮은 날짜이고 가장 높은 날짜와 같은 월 및 일을 갖는 인위적인 날짜를 색인에 추가해야합니다. df [df.index [-1] + pd.DateOffset (year = df.index [ 0]. 년 1) + pd.Timedelta ('2D')] = 0' – tworec

+0

웨어! 윤년에 따라 365D 샘플링이 중단되었습니다. – tworec

관련 문제