2016-11-24 70 views
1

我有1204天的日常頻率時間系列。 我想在365D的基礎上重新採樣(通過求和),但時間系列運行在3,29 * 365D,而不是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天。 如何強制重採樣將其從結果中排除?

+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] .year-1)+ pd.Timedelta('2D')] = 0' – tworec

+0

be ware! 365D採樣剔除閏年 – tworec