@@ -372,6 +372,53 @@ def test_setitem(self):
372
372
self .panel4d ['lP' ] = self .panel4d ['l1' ] > 0
373
373
self .assertEqual (self .panel4d ['lP' ].values .dtype , np .bool_ )
374
374
375
+ def test_setitem_by_indexer (self ):
376
+
377
+ # Panel
378
+ panel4dc = self .panel4d .copy ()
379
+ p = panel4dc .iloc [0 ]
380
+ def func ():
381
+ self .panel4d .iloc [0 ] = p
382
+ self .assertRaises (NotImplementedError , func )
383
+
384
+ # DataFrame
385
+ panel4dc = self .panel4d .copy ()
386
+ df = panel4dc .iloc [0 ,0 ]
387
+ df .iloc [:] = 1
388
+ panel4dc .iloc [0 ,0 ] = df
389
+ self .assertTrue ((panel4dc .iloc [0 ,0 ].values == 1 ).all ())
390
+
391
+ # Series
392
+ panel4dc = self .panel4d .copy ()
393
+ s = panel4dc .iloc [0 ,0 ,:,0 ]
394
+ s .iloc [:] = 1
395
+ panel4dc .iloc [0 ,0 ,:,0 ] = s
396
+ self .assertTrue ((panel4dc .iloc [0 ,0 ,:,0 ].values == 1 ).all ())
397
+
398
+ # scalar
399
+ panel4dc = self .panel4d .copy ()
400
+ panel4dc .iloc [0 ] = 1
401
+ panel4dc .iloc [1 ] = True
402
+ panel4dc .iloc [2 ] = 'foo'
403
+ self .assertTrue ((panel4dc .iloc [0 ].values == 1 ).all ())
404
+ self .assertTrue (panel4dc .iloc [1 ].values .all ())
405
+ self .assertTrue ((panel4dc .iloc [2 ].values == 'foo' ).all ())
406
+
407
+ def test_setitem_by_indexer_mixed_type (self ):
408
+ # GH 8702
409
+ self .panel4d ['foo' ] = 'bar'
410
+
411
+ # scalar
412
+ panel4dc = self .panel4d .copy ()
413
+ panel4dc .iloc [0 ] = 1
414
+ panel4dc .iloc [1 ] = True
415
+ panel4dc .iloc [2 ] = 'foo'
416
+ self .assertTrue ((panel4dc .iloc [0 ].values == 1 ).all ())
417
+ self .assertTrue (panel4dc .iloc [1 ].values .all ())
418
+ self .assertTrue ((panel4dc .iloc [2 ].values == 'foo' ).all ())
419
+
420
+
421
+
375
422
def test_comparisons (self ):
376
423
p1 = tm .makePanel4D ()
377
424
p2 = tm .makePanel4D ()
0 commit comments