按自定义年度频率重新采样

时间:2017-10-22 06:32:40

标签: python pandas

我知道我可以使用AS-JUL从7月1日起每年重新采样一次,但我怎么能在不同的日期做呢?

In [11]: df
Out[11]:
            value
date
2005-07-02      4
2005-09-20      7
2005-11-12      4
2005-12-31      0
2006-07-03      5
2006-06-25      6
2006-07-23      1
2006-09-28      8
2006-12-21      1
2006-12-27      9
2007-07-03      7
2007-09-21      0

In [12]: df.resample("AS-JUL").sum()
Out[12]:
            value
date
2005-07-01     26
2006-07-01     19
2007-07-01      7

我希望开始日期是7月5日,我该如何重新开始?

2 个答案:

答案 0 :(得分:3)

你可以减去4天,重新采样,然后加上4天......但这有点可怕:

In [11]: data2.index = data2.index - pd.offsets.Day(4)

In [12]: res = data2.resample("AS-JUL").sum()

In [13]: res.index = res.index + pd.offsets.Day(4)

In [14]: res
Out[14]:  
           value
date    
2004-07-05  4
2005-07-05  22
2006-07-05  26
2007-07-05  12

答案 1 :(得分:1)

您可以添加日期偏移,即

data2['date'].map(to_offset('AS-JUL')) +  pd.DateOffset(days=4)

输出:

0    2006-07-05
1    2006-07-05
2    2006-07-05
3    2006-07-05
4    2006-07-05
5    2006-07-05
6    2007-07-05
7    2007-07-05