BUG: maybe_infer_to_datetimelike incorrect on 2D inputs · Issue #23988 · pandas-dev/pandas (original) (raw)
Moved from discussion in #23730
>>> ts = pd.Timestamp.now().tz_localize('US/Pacific')
>>> data = np.array([[ts, ts, ts], [ts, ts, ts]])
>>> pd.DataFrame(data)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "pandas/core/frame.py", line 416, in __init__
copy=copy)
File "pandas/core/frame.py", line 574, in _init_ndarray
return create_block_manager_from_blocks([values], [columns, index])
File "pandas/core/internals/managers.py", line 1665, in create_block_manager_from_blocks
mgr = BlockManager(blocks, axes)
File "pandas/core/internals/managers.py", line 118, in __init__
self=self.ndim))
AssertionError: Number of Block dimensions (1) must equal number of axes (2)
This is because maybe_infer_to_datetimelike
returns a DatetimeIndex (and not something 2D)
>>> from pandas.core.frame import maybe_infer_to_datetimelike
>>> maybe_infer_to_datetimelike(data)
DatetimeIndex(['2018-11-28 16:07:44.050944-08:00',
'2018-11-28 16:07:44.050944-08:00',
'2018-11-28 16:07:44.050944-08:00',
'2018-11-28 16:07:44.050944-08:00',
'2018-11-28 16:07:44.050944-08:00',
'2018-11-28 16:07:44.050944-08:00'],
dtype='datetime64[ns, US/Pacific]', freq=None)
cc @h-vetinari since you're already on a roll in this neighborhood