Skip to content

Commit f867af4

Browse files
committed
API: DatetimeIndex.__init__ accepts nat by str
1 parent ab64d58 commit f867af4

File tree

3 files changed

+14
-3
lines changed

3 files changed

+14
-3
lines changed

doc/source/v0.15.0.txt

+1
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,7 @@ Enhancements
270270

271271

272272

273+
- ``DatetimeIndex`` can be instanciated using strings contains ``NaT`` (:issue:`7599`)
273274

274275

275276

pandas/tseries/tests/test_timeseries.py

+9
Original file line numberDiff line numberDiff line change
@@ -2159,6 +2159,15 @@ def test_constructor_coverage(self):
21592159
from_ints = DatetimeIndex(expected.asi8)
21602160
self.assertTrue(from_ints.equals(expected))
21612161

2162+
# string with NaT
2163+
strings = np.array(['2000-01-01', '2000-01-02', 'NaT'])
2164+
result = DatetimeIndex(strings)
2165+
expected = DatetimeIndex(strings.astype('O'))
2166+
self.assertTrue(result.equals(expected))
2167+
2168+
from_ints = DatetimeIndex(expected.asi8)
2169+
self.assertTrue(from_ints.equals(expected))
2170+
21622171
# non-conforming
21632172
self.assertRaises(ValueError, DatetimeIndex,
21642173
['2000-01-01', '2000-01-02', '2000-01-04'],

pandas/tseries/tools.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -380,13 +380,14 @@ def parse_time_string(arg, freq=None, dayfirst=None, yearfirst=None):
380380
datetime, datetime/dateutil.parser._result, str
381381
"""
382382
from pandas.core.config import get_option
383-
from pandas.tseries.offsets import DateOffset
384-
from pandas.tseries.frequencies import (_get_rule_month, _month_numbers,
385-
_get_freq_str)
383+
from pandas.tseries.frequencies import _get_rule_month, _month_numbers
386384

387385
if not isinstance(arg, compat.string_types):
388386
return arg
389387

388+
if arg in tslib._nat_strings:
389+
return tslib.NaT, tslib.NaT, ''
390+
390391
arg = arg.upper()
391392

392393
default = datetime(1, 1, 1).replace(hour=0, minute=0,

0 commit comments

Comments
 (0)