Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how do I get at the pandas.offsets object given an offset string

Tags:

python

pandas

Suppose I have an offset string 'BM' or '7W'
I know the answer for 'BM' is pd.offsets.BMonthEnd()
for '7W' is pd.offsets.Week(7)

Is there a generic solution in which I can pass a string and get the offset object?

like image 879
piRSquared Avatar asked Oct 24 '16 16:10

piRSquared


1 Answers

It looks like pandas.tseries.frequencies.to_offset is what's used internally to convert from offset strings to a DateOffset object:

from pandas.tseries.frequencies import to_offset

freq = to_offset('7W')

You can also get it in more of a hackier way without any imports by taking the freq attribute of a trivial DateTimeIndex:

freq = pd.date_range('2016-03-14', periods=0, freq='7W').freq

Using either method:

print(freq)
<7 * Weeks: weekday=6>

print(type(freq))
<class 'pandas.tseries.offsets.Week'>
like image 114
root Avatar answered Nov 15 '22 06:11

root