Как мне получить объект pandas.offsets с заданной строкой смещения

Предположим, у меня есть строка смещения 'BM' или же '7W'
Я знаю ответ на 'BM' является pd.offsets.BMonthEnd()
за '7W' является pd.offsets.Week(7)

Есть ли общее решение, в котором я могу передать строку и получить объект смещения?

1 ответ

Решение

Это выглядит как pandas.tseries.frequencies.to_offset это то, что используется внутри для преобразования из смещенных строк в DateOffset объект:

from pandas.tseries.frequencies import to_offset

freq = to_offset('7W')

Вы также можете получить его более хакерским способом без какого-либо импорта, взяв freq атрибут тривиального DateTimeIndex:

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

Используя любой метод:

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

print(type(freq))
<class 'pandas.tseries.offsets.Week'>
Другие вопросы по тегам