@@ -275,6 +275,35 @@ def test_getitem_generator(self):
275
275
assert_series_equal (result , expected )
276
276
assert_series_equal (result2 , expected )
277
277
278
+ def test_setitem_generator (self ):
279
+ bool_idx = self .series > 0
280
+ idces = self .series [bool_idx ].index
281
+
282
+ values = range (bool_idx .sum ())
283
+
284
+ expected = self .series .copy ()
285
+ expected [bool_idx ] = values
286
+
287
+ # boolean generator (fails)
288
+ # s2 = self.series.copy()
289
+ # s2[iter(bool_idx)] = values
290
+ # assert_series_equal(s2, expected)
291
+
292
+ # boolean generator with .loc (fails)
293
+ # s3 = self.series.copy()
294
+ # s3.loc[iter(bool_idx)] = values
295
+ # assert_series_equal(s3, expected)
296
+
297
+ # list of labels:
298
+ s4 = self .series .copy ()
299
+ s4 [iter (idces )] = values
300
+ assert_series_equal (s4 , expected )
301
+
302
+ # list of labels with .loc:
303
+ s5 = self .series .copy ()
304
+ s5 .loc [iter (idces )] = values
305
+ assert_series_equal (s5 , expected )
306
+
278
307
def test_type_promotion (self ):
279
308
# GH12599
280
309
s = pd .Series ()
0 commit comments