Skip to content

BUG: Union of timezone-aware indices with different units returns index with dtype 'object' #55238

Closed
@kdebrab

Description

@kdebrab

Pandas version checks

  • I have checked that this issue has not already been reported.

  • I have confirmed this bug exists on the latest version of pandas.

  • I have confirmed this bug exists on the main branch of pandas.

Reproducible Example

import pandas as pd
idx_tz = pd.date_range("2023-1-1", periods=5, freq="H", tz="UTC")
pd.Index.union(idx_tz, idx_tz.as_unit("us"))

Issue Description

The above returns:

Index([2023-01-01 00:00:00+00:00, 2023-01-01 01:00:00+00:00,
       2023-01-01 02:00:00+00:00, 2023-01-01 03:00:00+00:00,
       2023-01-01 04:00:00+00:00],
      dtype='object')

Note that the dtype is 'object'.

Expected Behavior

Expected behaviour would be to return an index with dtype 'datetime64[ns, UTC]'.

This is in line with the current behaviour for timezone-naive indices:

idx = pd.date_range("2023-1-1", periods=5, freq="H")
pd.Index.union(idx, idx.as_unit("us"))

which gives:

DatetimeIndex(['2023-01-01 00:00:00', '2023-01-01 01:00:00',
               '2023-01-01 02:00:00', '2023-01-01 03:00:00',
               '2023-01-01 04:00:00'],
              dtype='datetime64[ns]', freq='H')

Installed Versions

INSTALLED VERSIONS

commit : e86ed37
python : 3.11.3.final.0
python-bits : 64
OS : Windows
OS-release : 10
Version : 10.0.19044
machine : AMD64
processor : Intel64 Family 6 Model 140 Stepping 1, GenuineIntel
byteorder : little
LC_ALL : None
LANG : None
LOCALE : English_Belgium.1252
pandas : 2.1.1
numpy : 1.26.0
pytz : 2023.3.post1
dateutil : 2.8.2
setuptools : 65.5.0
pip : 23.2.1
Cython : None
pytest : 7.4.0
hypothesis : None
sphinx : None
blosc : None
feather : None
xlsxwriter : 3.1.4
lxml.etree : 4.9.3
html5lib : None
pymysql : None
psycopg2 : None
jinja2 : 3.1.2
IPython : 8.13.2
pandas_datareader : None
bs4 : None
bottleneck : 1.3.7
dataframe-api-compat: None
fastparquet : None
fsspec : 2023.5.0
gcsfs : None
matplotlib : 3.7.2
numba : None
numexpr : 2.8.6
odfpy : None
openpyxl : 3.1.2
pandas_gbq : None
pyarrow : 13.0.0
pyreadstat : None
pyxlsb : 1.0.10
s3fs : None
scipy : 1.11.2
sqlalchemy : None
tables : None
tabulate : 0.9.0
xarray : 2023.5.0
xlrd : 2.0.1
zstandard : None
tzdata : 2023.3
qtpy : None
pyqt5 : None

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugIndexRelated to the Index class or subclassesNon-Nanodatetime64/timedelta64 with non-nanosecond resolutionTimezonesTimezone data dtypesetopsunion, intersection, difference, symmetric_difference

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions