Skip to content

BUG(?): get default value doesn't work for Series #7725

Closed
@dsm054

Description

@dsm054

Series have a get method, but using the default value doesn't work for certain type combinations:

>>> s = pd.Series([1,2,3], index=["a","b","c"])
>>> s
a    1
b    2
c    3
dtype: int64
>>> s.get("d", 0)
0
>>> s.get(10, 0)
Traceback (most recent call last):
  File "<ipython-input-18-26d73ac73179>", line 1, in <module>
    s.get(10, 0)
  File "/usr/local/lib/python2.7/dist-packages/pandas-0.14.0_421_g20dfc6b-py2.7-linux-x86_64.egg/pandas/core/generic.py", line 1040, in get
    return self[key]
  File "/usr/local/lib/python2.7/dist-packages/pandas-0.14.0_421_g20dfc6b-py2.7-linux-x86_64.egg/pandas/core/series.py", line 484, in __getitem__
    result = self.index.get_value(self, key)
  File "/usr/local/lib/python2.7/dist-packages/pandas-0.14.0_421_g20dfc6b-py2.7-linux-x86_64.egg/pandas/core/index.py", line 1202, in get_value
    return tslib.get_value_box(s, key)
  File "tslib.pyx", line 540, in pandas.tslib.get_value_box (pandas/tslib.c:11831)
  File "tslib.pyx", line 555, in pandas.tslib.get_value_box (pandas/tslib.c:11678)
IndexError: index out of bounds

I'm not sure whether it makes the most sense just to teach .get to catch IndexErrors as well as KeyErrors and ValueErrors (which is what it does now), or whether a deeper change is warranted.

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugIndexingRelated to indexing on series/frames, not to indexes themselves

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions