Skip to content

Commit 8156ab9

Browse files
committed
BUG: handle Ellipsis in Series indexing close #1721
1 parent 5382985 commit 8156ab9

File tree

3 files changed

+17
-0
lines changed

3 files changed

+17
-0
lines changed

RELEASE.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ pandas 0.8.2
4242
- Fix MM-YYYY time series indexing case (#1672)
4343
- Fix case where Categorical group key was not being passed into index in
4444
GroupBy result (#1701)
45+
- Handle Ellipsis in Series.__getitem__/__setitem__ (#1721)
4546

4647
pandas 0.8.1
4748
============

pandas/core/series.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -435,6 +435,8 @@ def __getitem__(self, key):
435435
if isinstance(key, tuple) and isinstance(self.index, MultiIndex):
436436
# kludge
437437
pass
438+
elif key is Ellipsis:
439+
return self
438440
else:
439441
raise
440442
except Exception:
@@ -536,6 +538,9 @@ def __setitem__(self, key, value):
536538

537539
values[key] = value
538540
return
541+
elif key is Ellipsis:
542+
self[:] = value
543+
return
539544

540545
raise KeyError('%s not in this series!' % str(key))
541546
except TypeError, e:

pandas/tests/test_series.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,17 @@ def test_getitem_preserve_name(self):
8989
result = self.ts[5:10]
9090
self.assertEquals(result.name, self.ts.name)
9191

92+
def test_getitem_setitem_ellipsis(self):
93+
s = Series(np.random.randn(10))
94+
95+
np.fix(s)
96+
97+
result = s[...]
98+
assert_series_equal(result, s)
99+
100+
s[...] = 5
101+
self.assert_((result == 5).all())
102+
92103
def test_multilevel_name_print(self):
93104
index = MultiIndex(levels=[['foo', 'bar', 'baz', 'qux'],
94105
['one', 'two', 'three']],

0 commit comments

Comments
 (0)