Skip to content

Commit b132d4c

Browse files
committed
BUG: Fix Series.get failure on missing NaN (pandas-dev#8569)
1 parent 10c17d4 commit b132d4c

File tree

4 files changed

+17
-1
lines changed

4 files changed

+17
-1
lines changed

doc/source/whatsnew/v0.20.3.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ Conversion
4848
Indexing
4949
^^^^^^^^
5050

51-
51+
- Returning empty array instead of None when calling ``.get(np.nan)`` on a Series (:issue:`8569`)
5252

5353
I/O
5454
^^^

pandas/core/indexes/numeric.py

+2
Original file line numberDiff line numberDiff line change
@@ -369,6 +369,8 @@ def get_loc(self, key, method=None, tolerance=None):
369369
except (ValueError, IndexError):
370370
# should only need to catch ValueError here but on numpy
371371
# 1.7 .item() can raise IndexError when NaNs are present
372+
if not nan_idxs.size:
373+
raise KeyError
372374
return nan_idxs
373375
except (TypeError, NotImplementedError):
374376
pass

pandas/tests/indexes/test_numeric.py

+8
Original file line numberDiff line numberDiff line change
@@ -371,6 +371,14 @@ def test_get_loc_na(self):
371371
assert idx.get_loc(1) == 1
372372
pytest.raises(KeyError, idx.slice_locs, np.nan)
373373

374+
def test_get_loc_missing_nan(self):
375+
# GH 8569
376+
idx = Float64Index([1, 2])
377+
assert idx.get_loc(1) == 0
378+
pytest.raises(KeyError, idx.get_loc, 3)
379+
pytest.raises(KeyError, idx.get_loc, np.nan)
380+
pytest.raises(KeyError, idx.get_loc, [np.nan])
381+
374382
def test_contains_nans(self):
375383
i = Float64Index([1.0, 2.0, np.nan])
376384
assert np.nan in i

pandas/tests/series/test_indexing.py

+6
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,12 @@ def test_get(self):
7070
result = vc.get(True, default='Missing')
7171
assert result == 'Missing'
7272

73+
def test_get_missing_nan(self):
74+
# GH 8569
75+
s = pd.Float64Index(range(10)).to_series()
76+
assert s.get(np.nan) is None
77+
assert s.get(np.nan, default='Missing') == 'Missing'
78+
7379
def test_delitem(self):
7480

7581
# GH 5542

0 commit comments

Comments
 (0)