diff --git a/doc/source/release.rst b/doc/source/release.rst index 2ee9c7338889e..8de8929c5fa7a 100644 --- a/doc/source/release.rst +++ b/doc/source/release.rst @@ -110,6 +110,7 @@ Bug Fixes ``MultiIndex`` (:issue:`5402`). - Bug in ``pd.read_msgpack`` with inferring a ``DateTimeIndex`` frequencey incorrectly (:issue:`5947`) + - Fixed ``to_datetime`` for array with both Tz-aware datetimes and ``NaT``s (:issue:`5961`) pandas 0.13.0 ------------- diff --git a/pandas/tseries/tests/test_timezones.py b/pandas/tseries/tests/test_timezones.py index 8f0c817d33a2b..6b571aca20afc 100644 --- a/pandas/tseries/tests/test_timezones.py +++ b/pandas/tseries/tests/test_timezones.py @@ -10,7 +10,7 @@ from pandas import (Index, Series, TimeSeries, DataFrame, isnull, date_range, Timestamp) -from pandas import DatetimeIndex, Int64Index, to_datetime +from pandas import DatetimeIndex, Int64Index, to_datetime, NaT from pandas.core.daterange import DateRange import pandas.core.datetools as datetools @@ -671,6 +671,12 @@ def test_datetimeindex_tz(self): for other in [idx2, idx3, idx4]: self.assert_(idx1.equals(other)) + def test_datetimeindex_tz_nat(self): + idx = to_datetime([Timestamp("2013-1-1", tz='US/Eastern'), NaT]) + + self.assertTrue(isnull(idx[1])) + self.assertTrue(idx[0].tzinfo is not None) + class TestTimeZones(tm.TestCase): _multiprocess_can_split_ = True diff --git a/pandas/tslib.pyx b/pandas/tslib.pyx index 0bac159404e34..c118a9660b5e7 100644 --- a/pandas/tslib.pyx +++ b/pandas/tslib.pyx @@ -933,7 +933,7 @@ def datetime_to_datetime64(ndarray[object] values): iresult = result.view('i8') for i in range(n): val = values[i] - if util._checknull(val): + if util._checknull(val) or val is NaT: iresult[i] = iNaT elif PyDateTime_Check(val): if val.tzinfo is not None: