BUG: linspace behavior for date_range is incorrect when tz aware · Issue #20983 · pandas-dev/pandas (original) (raw)

Code Sample, a copy-pastable example if possible

xref #20846

In [2]: dti = pd.date_range('20180101', '20180103', periods=3, tz='US/Eastern')

In [3]: dti Out[3]: DatetimeIndex(['2017-12-31', '2018-01-01', '2018-01-02'], dtype='datetime64[ns, US/Eastern]', freq=None)

In [4]: dti[0] Out[4]: Timestamp('2017-12-31 19:00:00-0500', tz='US/Eastern')

Problem description

The dates in the date_range are not being localized correctly; the dates are being shifted back by the UTC offset, then having the timezone appended to the shifted back date.

Expected Output

I'd expect this to be identical to the equivalent non-linspace behavior call:

In [5]: dti2 = pd.date_range('20180101', periods=3, freq='D', tz='US/Eastern')

In [6]: dti2 Out[6]: DatetimeIndex(['2018-01-01 00:00:00-05:00', '2018-01-02 00:00:00-05:00', '2018-01-03 00:00:00-05:00'], dtype='datetime64[ns, US/Eastern]', freq='D')

In [7]: dti2[0] Out[7]: Timestamp('2018-01-01 00:00:00-0500', tz='US/Eastern', freq='D')

Output of pd.show_versions()

INSTALLED VERSIONS

commit: b3f07b2
python: 3.6.1.final.0
python-bits: 64
OS: Windows
OS-release: 10
machine: AMD64
processor: Intel64 Family 6 Model 78 Stepping 3, GenuineIntel
byteorder: little
LC_ALL: None
LANG: None
LOCALE: None.None

pandas: 0.23.0rc2+23.gb3f07b2
pytest: 3.1.2
pip: 9.0.1
setuptools: 39.0.1
Cython: 0.28.2
numpy: 1.13.3
scipy: 1.0.0
pyarrow: 0.6.0
xarray: 0.9.6
IPython: 6.1.0
sphinx: 1.5.6
patsy: 0.4.1
dateutil: 2.6.0
pytz: 2017.2
blosc: None
bottleneck: 1.2.1
tables: 3.4.2
numexpr: 2.6.4
feather: 0.4.0
matplotlib: 2.0.2
openpyxl: 2.4.8
xlrd: 1.1.0
xlwt: 1.3.0
xlsxwriter: 0.9.8
lxml: 3.8.0
bs4: None
html5lib: 0.999
sqlalchemy: 1.1.13
pymysql: None
psycopg2: None
jinja2: 2.9.6
s3fs: None
fastparquet: 0.1.5
pandas_gbq: None
pandas_datareader: None