Skip to content

Commit 2b77554

Browse files
author
Ben Kandel
committed
Fix bug in Float64Index.get_value() for tuples.
Currently, trying to retrieve one tuple-valued entry in a Series with a Float64Index will fail (GH 13509). This fixes that bug.
1 parent 185fcbe commit 2b77554

File tree

3 files changed

+7
-9
lines changed

3 files changed

+7
-9
lines changed

doc/source/whatsnew/v0.19.0.txt

+1
Original file line numberDiff line numberDiff line change
@@ -1253,3 +1253,4 @@ Bug Fixes
12531253
- Bug in ``.to_string()`` when called with an integer ``line_width`` and ``index=False`` raises an UnboundLocalError exception because ``idx`` referenced before assignment.
12541254

12551255
- Bug in ``read_csv()``, where aliases for utf-xx (e.g. UTF-xx, UTF_xx, utf_xx) raised UnicodeDecodeError (:issue:`13549`)
1256+
- Bug in ``Float64Index.get_value()`` where trying to access one tuple-valued entry in a ``Series`` failed (:issue:`13509`)

pandas/indexes/numeric.py

+1-9
Original file line numberDiff line numberDiff line change
@@ -293,19 +293,11 @@ def get_value(self, series, key):
293293
if not is_scalar(key):
294294
raise InvalidIndexError
295295

296-
from pandas.core.indexing import maybe_droplevels
297-
from pandas.core.series import Series
298-
299296
k = _values_from_object(key)
300297
loc = self.get_loc(k)
301298
new_values = _values_from_object(series)[loc]
302299

303-
if is_scalar(new_values) or new_values is None:
304-
return new_values
305-
306-
new_index = self[loc]
307-
new_index = maybe_droplevels(new_index, k)
308-
return Series(new_values, index=new_index, name=series.name)
300+
return new_values
309301

310302
def equals(self, other):
311303
"""

pandas/tests/indexing/test_floats.py

+5
Original file line numberDiff line numberDiff line change
@@ -676,3 +676,8 @@ def test_floating_misc(self):
676676
assert_series_equal(result1, result2)
677677
assert_series_equal(result1, result3)
678678
assert_series_equal(result1, Series([1], index=[2.5]))
679+
680+
def test_floating_tuples(self):
681+
s = Series([(1, 1), (2, 2), (3, 3)], index=[0.0, 0.1, 0.2])
682+
result = s[0.0]
683+
assert result == (1, 1)

0 commit comments

Comments
 (0)