Skip to content

Commit 756f907

Browse files
committed
Merge pull request #7728 from dsm054/fix-get-indexerror
BUG: allow get default value upon IndexError, GH #7725
2 parents 99bf239 + 32d0d1b commit 756f907

File tree

3 files changed

+19
-1
lines changed

3 files changed

+19
-1
lines changed

doc/source/v0.15.0.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -483,6 +483,7 @@ Enhancements
483483
- Bug in ``DataFrame.groupby`` where ``Grouper`` does not recognize level when frequency is specified (:issue:`7885`)
484484

485485

486+
- Bug in ``get`` where an ``IndexError`` would not cause the default value to be returned (:issue:`7725`)
486487

487488

488489

pandas/core/generic.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1044,7 +1044,7 @@ def get(self, key, default=None):
10441044
"""
10451045
try:
10461046
return self[key]
1047-
except (KeyError, ValueError):
1047+
except (KeyError, ValueError, IndexError):
10481048
return default
10491049

10501050
def __getitem__(self, item):

pandas/tests/test_generic.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,23 @@ def test_get_numeric_data(self):
123123

124124
# _get_numeric_data is includes _get_bool_data, so can't test for non-inclusion
125125

126+
def test_get_default(self):
127+
128+
# GH 7725
129+
d0 = "a", "b", "c", "d"
130+
d1 = np.arange(4, dtype='int64')
131+
others = "e", 10
132+
133+
for data, index in ((d0, d1), (d1, d0)):
134+
s = Series(data, index=index)
135+
for i,d in zip(index, data):
136+
self.assertEqual(s.get(i), d)
137+
self.assertEqual(s.get(i, d), d)
138+
self.assertEqual(s.get(i, "z"), d)
139+
for other in others:
140+
self.assertEqual(s.get(other, "z"), "z")
141+
self.assertEqual(s.get(other, other), other)
142+
126143
def test_nonzero(self):
127144

128145
# GH 4633

0 commit comments

Comments
 (0)