Skip to content

Commit 8cd34c6

Browse files
committed
Merge pull request #5772 from jreback/series_loc
BUG: setitem for iloc/loc with a slice on a Series (GH5771)
2 parents 62c4153 + 52f91f8 commit 8cd34c6

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

pandas/core/indexing.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -420,7 +420,10 @@ def can_do_equal_len():
420420
self.obj._maybe_update_cacher(clear=True)
421421

422422
def _align_series(self, indexer, ser):
423-
# indexer to assign Series can be tuple or scalar
423+
# indexer to assign Series can be tuple, slice, scalar
424+
if isinstance(indexer, slice):
425+
indexer = tuple([indexer])
426+
424427
if isinstance(indexer, tuple):
425428

426429
aligners = [not _is_null_slice(idx) for idx in indexer]

pandas/tests/test_indexing.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -456,6 +456,20 @@ def test_iloc_setitem(self):
456456
result = df.iloc[:,2:3]
457457
assert_frame_equal(result, expected)
458458

459+
# GH5771
460+
s = Series(0,index=[4,5,6])
461+
s.iloc[1:2] += 1
462+
expected = Series([0,1,0],index=[4,5,6])
463+
assert_series_equal(s, expected)
464+
465+
def test_loc_setitem(self):
466+
# GH 5771
467+
# loc with slice and series
468+
s = Series(0,index=[4,5,6])
469+
s.loc[4:5] += 1
470+
expected = Series([1,1,0],index=[4,5,6])
471+
assert_series_equal(s, expected)
472+
459473
def test_loc_getitem_int(self):
460474

461475
# int label

0 commit comments

Comments
 (0)