我感到困惑的是,大熊猫如何用这些行超出日期时间对象的范围:
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))
这all_treatments.iloc[i,micolix]是设置的日期时间pd.to_datetime(all_treatments['INDATUMA'], errors='coerce',format='%Y%m%d'),并且INDATUMA是格式的日期信息20070125。
all_treatments.iloc[i,micolix]
pd.to_datetime(all_treatments['INDATUMA'], errors='coerce',format='%Y%m%d')
INDATUMA
20070125
此逻辑似乎适用于模拟数据(没有错误,日期有意义),因此目前我无法重现,但由于以下错误导致我的整个数据失败:
pandas.tslib.OutOfBoundsDatetime: Out of bounds nanosecond timestamp: 2262-05-01 00:00:00
由于熊猫以纳秒分辨率表示时间戳,因此可以使用64位整数表示的时间跨度限制为大约584年
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')
而且您的值超出此范围2262-05-01 00:00:00,因此发生出站错误
直接出自:http : //pandas- docs.github.io/pandas-docs-travis/user_guide/timeseries.html#timeseries- timestamp-limits