From 6000c5b9624fdd8925099f215eba282bfbef87ce Mon Sep 17 00:00:00 2001 From: jdeschenes Date: Fri, 14 Jul 2017 10:13:53 -0400 Subject: [PATCH] Fix for #16909(DeltatimeIndex.get_loc is not working on np.deltatime64 data type) (#16912) --- doc/source/whatsnew/v0.21.0.txt | 1 + pandas/core/indexes/timedeltas.py | 4 ++-- pandas/tests/indexes/timedeltas/test_timedelta.py | 3 +++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/doc/source/whatsnew/v0.21.0.txt b/doc/source/whatsnew/v0.21.0.txt index 039b24cc63217..2716d9b09eaa9 100644 --- a/doc/source/whatsnew/v0.21.0.txt +++ b/doc/source/whatsnew/v0.21.0.txt @@ -155,6 +155,7 @@ Indexing - When called with a null slice (e.g. ``df.iloc[:]``), the ``.iloc`` and ``.loc`` indexers return a shallow copy of the original object. Previously they returned the original object. (:issue:`13873`). - When called on an unsorted ``MultiIndex``, the ``loc`` indexer now will raise ``UnsortedIndexError`` only if proper slicing is used on non-sorted levels (:issue:`16734`). - Fixes regression in 0.20.3 when indexing with a string on a ``TimedeltaIndex`` (:issue:`16896`). +- Fixed ``TimedeltaIndex.get_loc`` handling of ``np.timedelta64`` inputs (:issue:`16909`). I/O ^^^ diff --git a/pandas/core/indexes/timedeltas.py b/pandas/core/indexes/timedeltas.py index faec813df3993..68713743d72ed 100644 --- a/pandas/core/indexes/timedeltas.py +++ b/pandas/core/indexes/timedeltas.py @@ -15,7 +15,7 @@ _ensure_int64) from pandas.core.dtypes.missing import isnull from pandas.core.dtypes.generic import ABCSeries -from pandas.core.common import _maybe_box, _values_from_object, is_bool_indexer +from pandas.core.common import _maybe_box, _values_from_object from pandas.core.indexes.base import Index from pandas.core.indexes.numeric import Int64Index @@ -682,7 +682,7 @@ def get_loc(self, key, method=None, tolerance=None): ------- loc : int """ - if is_bool_indexer(key) or is_timedelta64_dtype(key): + if is_list_like(key): raise TypeError if isnull(key): diff --git a/pandas/tests/indexes/timedeltas/test_timedelta.py b/pandas/tests/indexes/timedeltas/test_timedelta.py index a4fc26382fb9b..59e4b1432b8bc 100644 --- a/pandas/tests/indexes/timedeltas/test_timedelta.py +++ b/pandas/tests/indexes/timedeltas/test_timedelta.py @@ -66,6 +66,9 @@ def test_get_loc(self): for method, loc in [('pad', 1), ('backfill', 2), ('nearest', 1)]: assert idx.get_loc('1 day 1 hour', method) == loc + # GH 16909 + assert idx.get_loc(idx[1].to_timedelta64()) == 1 + # GH 16896 assert idx.get_loc('0 days') == 0