Skip to content

DataFrame with datetime column cannot concat with non-identical columns #26288

Open
@ruiann

Description

@ruiann

Code Sample, a copy-pastable example if possible

In [12]: df1 = pd.DataFrame({"A": pd.core.arrays.SparseArray(pd.date_range("2000", periods=2)), "B": [1, 2]})

In [13]: df2 = pd.DataFrame({"B": [1, 2]})

In [14]: pd.concat([df1, df2])
---------------------------------------------------------------------------
NotImplementedError                       Traceback (most recent call last)
<ipython-input-14-6197998bc0b3> in <module>
----> 1 pd.concat([df1, df2])

~/sandbox/pandas/pandas/core/reshape/concat.py in concat(objs, axis, join, join_axes, ignore_index, keys, levels, names, verify_integrity, sort, copy)
    253     )
    254
--> 255     return op.get_result()
    256
    257

~/sandbox/pandas/pandas/core/reshape/concat.py in get_result(self)
    468
    469             new_data = concatenate_block_managers(
--> 470                 mgrs_indexers, self.new_axes, concat_axis=self.axis, copy=self.copy
    471             )
    472             if not self.copy:

~/sandbox/pandas/pandas/core/internals/managers.py in concatenate_block_managers(mgrs_indexers, axes, concat_axis, copy)
   1992         else:
   1993             b = make_block(
-> 1994                 concatenate_join_units(join_units, concat_axis, copy=copy),
   1995                 placement=placement,
   1996             )

~/sandbox/pandas/pandas/core/internals/concat.py in concatenate_join_units(join_units, concat_axis, copy)
    262                 concat_values = concat_values.copy()
    263     else:
--> 264         concat_values = concat_compat(to_concat, axis=concat_axis)
    265
    266     return concat_values

~/sandbox/pandas/pandas/core/dtypes/concat.py in concat_compat(to_concat, axis)
    111
    112     elif _contains_datetime or "timedelta" in typs or _contains_period:
--> 113         return concat_datetime(to_concat, axis=axis, typs=typs)
    114
    115     # these are mandated to handle empties as well

~/sandbox/pandas/pandas/core/dtypes/concat.py in concat_datetime(to_concat, axis, typs)
    387     if len(typs) != 1:
    388         return _concatenate_2d(
--> 389             [_convert_datetimelike_to_object(x) for x in to_concat], axis=axis
    390         )
    391

~/sandbox/pandas/pandas/core/dtypes/concat.py in <listcomp>(.0)
    387     if len(typs) != 1:
    388         return _concatenate_2d(
--> 389             [_convert_datetimelike_to_object(x) for x in to_concat], axis=axis
    390         )
    391

~/sandbox/pandas/pandas/core/dtypes/concat.py in _convert_datetimelike_to_object(x)
    422         else:
    423             shape = x.shape
--> 424             x = tslib.ints_to_pydatetime(x.view(np.int64).ravel(), box="timestamp")
    425             x = x.reshape(shape)
    426

~/sandbox/pandas/pandas/core/arrays/base.py in view(self, dtype)
    907         #   giving a view with the same dtype as self.
    908         if dtype is not None:
--> 909             raise NotImplementedError(dtype)
    910         return self[:]
    911

NotImplementedError: <class 'numpy.int64'>

Metadata

Metadata

Assignees

No one assigned

    Labels

    EnhancementReshapingConcat, Merge/Join, Stack/Unstack, ExplodeSparseSparse Data Type

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions