DatetimeIndex and Timestamp have different implementation limits · Issue #24124 · pandas-dev/pandas (original) (raw)
Timestamp
's minimum value is bounded away from np.iinfo(np.int64).min
"to allow overflow free conversion with a microsecond resolution", but DatetimeIndex
is not:
>>> dti = pd.date_range(end=pd.Timestamp.min, periods=2, freq='ns')
>>> dti
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "pandas/core/base.py", line 77, in __repr__
return str(self)
File "pandas/core/base.py", line 57, in __str__
return self.__bytes__()
File "pandas/core/base.py", line 69, in __bytes__
return self.__unicode__().encode(encoding, 'replace')
File "pandas/core/indexes/base.py", line 927, in __unicode__
data = self._format_data()
File "pandas/core/indexes/base.py", line 970, in _format_data
is_justify=is_justify, name=name)
File "pandas/io/formats/printing.py", line 348, in format_object_summary
first = formatter(obj[0])
File "pandas/core/arrays/datetimelike.py", line 333, in __getitem__
return self._box_func(val)
File "pandas/core/arrays/datetimes.py", line 327, in <lambda>
return lambda x: Timestamp(x, freq=self.freq, tz=self.tz)
File "pandas/_libs/tslibs/timestamps.pyx", line 736, in pandas._libs.tslibs.timestamps.Timestamp.__new__
ts = convert_to_tsobject(ts_input, tz, unit, 0, 0, nanosecond or 0)
File "pandas/_libs/tslibs/conversion.pyx", line 324, in pandas._libs.tslibs.conversion.convert_to_tsobject
check_dts_bounds(&obj.dts)
File "pandas/_libs/tslibs/np_datetime.pyx", line 120, in pandas._libs.tslibs.np_datetime.check_dts_bounds
raise OutOfBoundsDatetime(
pandas._libs.tslibs.np_datetime.OutOfBoundsDatetime: Out of bounds nanosecond timestamp: 1677-09-21 00:12:43