pandas fuera de límites marca de tiempo de nanosegundos después del desplazamiento hacia adelante más la adición de un mes de desplazamiento

Estoy confundido de cómo los pandas volaron fuera de los límites para objetos de fecha y hora con estas líneas:

import pandas as pd BOMoffset = pd.tseries.offsets.MonthBegin() # here some code sets the all_treatments dataframe and the newrowix, micolix, mocolix counters all_treatments.iloc[newrowix,micolix] = BOMoffset.rollforward(all_treatments.iloc[i,micolix] + pd.tseries.offsets.DateOffset(months = x)) all_treatments.iloc[newrowix,mocolix] = BOMoffset.rollforward(all_treatments.iloc[newrowix,micolix]+ pd.tseries.offsets.DateOffset(months = 1)) 

Aquí all_treatments.iloc[i,micolix] es una fecha y hora establecida por pd.to_datetime(all_treatments['INDATUMA'], errors='coerce',format='%Y%m%d') , e INDATUMA es información de fecha en el Formato 20070125 .

Esta lógica parece funcionar con datos simulados (no hay errores, las fechas tienen sentido), por lo que en este momento no puedo reproducir mientras fallan todos mis datos con el siguiente error:

 pandas.tslib.OutOfBoundsDatetime: Out of bounds nanosecond timestamp: 2262-05-01 00:00:00 

Dado que los pandas representan marcas de tiempo en resolución de nanosegundos, el intervalo de tiempo que se puede representar utilizando un entero de 64 bits se limita a aproximadamente 584 años

 pd.Timestamp.min Out[54]: Timestamp('1677-09-22 00:12:43.145225') In [55]: pd.Timestamp.max Out[55]: Timestamp('2262-04-11 23:47:16.854775807') 

Y su valor está fuera de este rango 2262-05-01 00:00:00 y, por lo tanto, el error de outofbounds

Directamente de: http://pandas-docs.github.io/pandas-docs-travis/timeseries.html#timestamp-limitations

Establecer el parámetro de errors en pd.to_datetime en 'coerce' pd.to_datetime 'coerce' provoca la sustitución de los valores fuera de límites con NaT . Citando los documentos :

Si ‘coerce’, el análisis no válido se establecerá como NaT

P.ej:

 datetime_variable = pd.to_datetime(datetime_variable, errors = 'coerce') 

Esto no arregla los datos (obviamente), pero aún permite procesar los puntos de datos que no son NaT.