¿Cómo puedo obtener en el objeto pandas.offsets dado una cadena de desplazamiento

Supongamos que tengo una cadena de desplazamiento 'BM' o '7W'
Sé que la respuesta para 'BM' es pd.offsets.BMonthEnd()
para '7W' es pd.offsets.Week(7)

¿Existe una solución genérica en la que pueda pasar una cadena y obtener el objeto de compensación?

Parece que pandas.tseries.frequencies.to_offset es lo que se usa internamente para convertir de cadenas de desplazamiento a un objeto DateOffset :

 from pandas.tseries.frequencies import to_offset freq = to_offset('7W') 

También puede obtenerlo de una manera más complicada sin importar nada, tomando el atributo freq de un DateTimeIndex trivial:

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

Usando cualquiera de los dos métodos:

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