I have an 8-year timeseries with daily values where I would like to resample biweekly. However, I only need biweekly values from week 18 to week 30 of each year (i.e. W18, W20, W22, ..., W30). This method would sometimes give me the 'odd' biweekly values (i.e. W19, W21, W23,..., W29). How might I ensure that I would always get the 'even' biweekly values?
df = df.resample("2W").mean()
df["Week"] = df.index.map(lambda dt: dt.week)
df = df.loc[df.Week.isin(range(18,31))]
An example of the daily data from 2010-01-01 to 2018-12-31: (short version)
Date value_1 value_2
... ... ...
2010-05-03 10 1
2010-05-04 79 66
2010-05-05 40 16
2010-05-06 13 76
2010-05-07 2 36
2010-05-08 31 98
2010-05-09 96 3
2010-05-10 66 18
2010-05-11 99 9
... ... ...
Expected biweekly data between week 18 and week 30:
Date value_1 value_2 Week
2010-05-03 14 1 18
2010-05-17 33 89 20
2010-05-31 21 31 22
2010-06-14 33 56 24
2010-06-28 12 43 26
2010-07-12 21 72 28
2010-07-26 76 13 30
2011-05-02 60 28 18
2011-05-16 82 2 20
2011-05-30 30 15 22
... ... ... ...