@@ -1436,6 +1436,49 @@ def f():
1436
1436
p .loc [:,:,'C' ] = Series ([30 ,32 ],index = p_orig .items )
1437
1437
assert_panel_equal (p ,expected )
1438
1438
1439
+ def test_series_partial_set (self ):
1440
+ # partial set with new index
1441
+ # Regression from GH4825
1442
+ ser = Series ([0.1 , 0.2 ], index = [1 , 2 ])
1443
+
1444
+ # loc
1445
+ expected = Series ([np .nan , 0.2 , np .nan ], index = [3 , 2 , 3 ])
1446
+ result = ser .loc [[3 , 2 , 3 ]]
1447
+ assert_series_equal (result , expected )
1448
+
1449
+ expected = Series ([np .nan , np .nan , np .nan ], index = [3 , 3 , 3 ])
1450
+ result = ser .loc [[3 , 3 , 3 ]]
1451
+ assert_series_equal (result , expected )
1452
+
1453
+ expected = Series ([0.2 , 0.2 , np .nan ], index = [2 , 2 , 3 ])
1454
+ result = ser .loc [[2 , 2 , 3 ]]
1455
+ assert_series_equal (result , expected )
1456
+
1457
+ expected = Series ([0.3 , np .nan , np .nan ], index = [3 , 4 , 4 ])
1458
+ result = Series ([0.1 , 0.2 , 0.3 ], index = [1 ,2 ,3 ]).loc [[3 ,4 ,4 ]]
1459
+ assert_series_equal (result , expected )
1460
+
1461
+ expected = Series ([np .nan , 0.3 , 0.3 ], index = [5 , 3 , 3 ])
1462
+ result = Series ([0.1 , 0.2 , 0.3 , 0.4 ], index = [1 ,2 ,3 ,4 ]).loc [[5 ,3 ,3 ]]
1463
+ assert_series_equal (result , expected )
1464
+
1465
+ expected = Series ([np .nan , 0.4 , 0.4 ], index = [5 , 4 , 4 ])
1466
+ result = Series ([0.1 , 0.2 , 0.3 , 0.4 ], index = [1 ,2 ,3 ,4 ]).loc [[5 ,4 ,4 ]]
1467
+ assert_series_equal (result , expected )
1468
+
1469
+ expected = Series ([0.4 , np .nan , np .nan ], index = [7 , 2 , 2 ])
1470
+ result = Series ([0.1 , 0.2 , 0.3 , 0.4 ], index = [4 ,5 ,6 ,7 ]).loc [[7 ,2 ,2 ]]
1471
+ assert_series_equal (result , expected )
1472
+
1473
+ expected = Series ([0.4 , np .nan , np .nan ], index = [4 , 5 , 5 ])
1474
+ result = Series ([0.1 , 0.2 , 0.3 , 0.4 ], index = [1 ,2 ,3 ,4 ]).loc [[4 ,5 ,5 ]]
1475
+ assert_series_equal (result , expected )
1476
+
1477
+ # iloc
1478
+ expected = Series ([0.2 ,0.2 ,0.1 ,0.1 ], index = [2 ,2 ,1 ,1 ])
1479
+ result = ser .iloc [[1 ,1 ,0 ,0 ]]
1480
+ assert_series_equal (result , expected )
1481
+
1439
1482
if __name__ == '__main__' :
1440
1483
import nose
1441
1484
nose .runmodule (argv = [__file__ , '-vvs' , '-x' , '--pdb' , '--pdb-failure' ],
0 commit comments