@@ -3516,44 +3516,163 @@ def test_series_partial_set(self):
35163516        # Regression from GH4825 
35173517        ser  =  Series ([0.1 , 0.2 ], index = [1 , 2 ])
35183518
3519-         # ToDo: check_index_type can be True after GH 11497 
3520- 
35213519        # loc 
35223520        expected  =  Series ([np .nan , 0.2 , np .nan ], index = [3 , 2 , 3 ])
35233521        result  =  ser .loc [[3 , 2 , 3 ]]
3524-         assert_series_equal (result , expected , check_index_type = False )
3522+         assert_series_equal (result , expected , check_index_type = True )
3523+ 
3524+         expected  =  Series ([np .nan , 0.2 , np .nan , np .nan ], index = [3 , 2 , 3 , 'x' ])
3525+         result  =  ser .loc [[3 , 2 , 3 , 'x' ]]
3526+         assert_series_equal (result , expected , check_index_type = True )
3527+ 
3528+         expected  =  Series ([0.2 , 0.2 , 0.1 ], index = [2 , 2 , 1 ])
3529+         result  =  ser .loc [[2 , 2 , 1 ]]
3530+         assert_series_equal (result , expected , check_index_type = True )
3531+ 
3532+         expected  =  Series ([0.2 , 0.2 , np .nan , 0.1 ], index = [2 , 2 , 'x' , 1 ])
3533+         result  =  ser .loc [[2 , 2 , 'x' , 1 ]]
3534+         assert_series_equal (result , expected , check_index_type = True )
35253535
35263536        # raises as nothing in in the index 
35273537        self .assertRaises (KeyError , lambda  : ser .loc [[3 , 3 , 3 ]])
35283538
35293539        expected  =  Series ([0.2 , 0.2 , np .nan ], index = [2 , 2 , 3 ])
35303540        result  =  ser .loc [[2 , 2 , 3 ]]
3531-         assert_series_equal (result , expected , check_index_type = False )
3541+         assert_series_equal (result , expected , check_index_type = True )
35323542
35333543        expected  =  Series ([0.3 , np .nan , np .nan ], index = [3 , 4 , 4 ])
35343544        result  =  Series ([0.1 , 0.2 , 0.3 ], index = [1 , 2 , 3 ]).loc [[3 , 4 , 4 ]]
3535-         assert_series_equal (result , expected , check_index_type = False )
3545+         assert_series_equal (result , expected , check_index_type = True )
35363546
35373547        expected  =  Series ([np .nan , 0.3 , 0.3 ], index = [5 , 3 , 3 ])
35383548        result  =  Series ([0.1 , 0.2 , 0.3 , 0.4 ], index = [1 , 2 , 3 , 4 ]).loc [[5 , 3 , 3 ]]
3539-         assert_series_equal (result , expected , check_index_type = False )
3549+         assert_series_equal (result , expected , check_index_type = True )
35403550
35413551        expected  =  Series ([np .nan , 0.4 , 0.4 ], index = [5 , 4 , 4 ])
35423552        result  =  Series ([0.1 , 0.2 , 0.3 , 0.4 ], index = [1 , 2 , 3 , 4 ]).loc [[5 , 4 , 4 ]]
3543-         assert_series_equal (result , expected , check_index_type = False )
3553+         assert_series_equal (result , expected , check_index_type = True )
35443554
35453555        expected  =  Series ([0.4 , np .nan , np .nan ], index = [7 , 2 , 2 ])
35463556        result  =  Series ([0.1 , 0.2 , 0.3 , 0.4 ], index = [4 , 5 , 6 , 7 ]).loc [[7 , 2 , 2 ]]
3547-         assert_series_equal (result , expected , check_index_type = False )
3557+         assert_series_equal (result , expected , check_index_type = True )
35483558
35493559        expected  =  Series ([0.4 , np .nan , np .nan ], index = [4 , 5 , 5 ])
35503560        result  =  Series ([0.1 , 0.2 , 0.3 , 0.4 ], index = [1 , 2 , 3 , 4 ]).loc [[4 , 5 , 5 ]]
3551-         assert_series_equal (result , expected , check_index_type = False )
3561+         assert_series_equal (result , expected , check_index_type = True )
35523562
35533563        # iloc 
35543564        expected  =  Series ([0.2 , 0.2 , 0.1 , 0.1 ], index = [2 , 2 , 1 , 1 ])
35553565        result  =  ser .iloc [[1 , 1 , 0 , 0 ]]
3556-         assert_series_equal (result , expected , check_index_type = False )
3566+         assert_series_equal (result , expected , check_index_type = True )
3567+ 
3568+     def  test_series_partial_set_with_name (self ):
3569+         # GH 11497 
3570+ 
3571+         idx  =  Index ([1 , 2 ], dtype = 'int64' , name = 'idx' )
3572+         ser  =  Series ([0.1 , 0.2 ], index = idx , name = 's' )
3573+ 
3574+         # loc 
3575+         exp_idx  =  Index ([3 , 2 , 3 ], dtype = 'int64' , name = 'idx' )
3576+         expected  =  Series ([np .nan , 0.2 , np .nan ], index = exp_idx , name = 's' )
3577+         result  =  ser .loc [[3 , 2 , 3 ]]
3578+         assert_series_equal (result , expected , check_index_type = True )
3579+ 
3580+         exp_idx  =  Index ([3 , 2 , 3 , 'x' ], dtype = 'object' , name = 'idx' )
3581+         expected  =  Series ([np .nan , 0.2 , np .nan , np .nan ], index = exp_idx , name = 's' )
3582+         result  =  ser .loc [[3 , 2 , 3 , 'x' ]]
3583+         assert_series_equal (result , expected , check_index_type = True )
3584+ 
3585+         exp_idx  =  Index ([2 , 2 , 1 ], dtype = 'int64' , name = 'idx' )
3586+         expected  =  Series ([0.2 , 0.2 , 0.1 ], index = exp_idx , name = 's' )
3587+         result  =  ser .loc [[2 , 2 , 1 ]]
3588+         assert_series_equal (result , expected , check_index_type = True )
3589+ 
3590+         exp_idx  =  Index ([2 , 2 , 'x' , 1 ], dtype = 'object' , name = 'idx' )
3591+         expected  =  Series ([0.2 , 0.2 , np .nan , 0.1 ], index = exp_idx , name = 's' )
3592+         result  =  ser .loc [[2 , 2 , 'x' , 1 ]]
3593+         assert_series_equal (result , expected , check_index_type = True )
3594+ 
3595+         # raises as nothing in in the index 
3596+         self .assertRaises (KeyError , lambda  : ser .loc [[3 , 3 , 3 ]])
3597+ 
3598+         exp_idx  =  Index ([2 , 2 , 3 ], dtype = 'int64' , name = 'idx' )
3599+         expected  =  Series ([0.2 , 0.2 , np .nan ], index = exp_idx , name = 's' )
3600+         result  =  ser .loc [[2 , 2 , 3 ]]
3601+         assert_series_equal (result , expected , check_index_type = True )
3602+ 
3603+         exp_idx  =  Index ([3 , 4 , 4 ], dtype = 'int64' , name = 'idx' )
3604+         expected  =  Series ([0.3 , np .nan , np .nan ], index = exp_idx , name = 's' )
3605+         idx  =  Index ([1 , 2 , 3 ], dtype = 'int64' , name = 'idx' )
3606+         result  =  Series ([0.1 , 0.2 , 0.3 ], index = idx , name = 's' ).loc [[3 , 4 , 4 ]]
3607+         assert_series_equal (result , expected , check_index_type = True )
3608+ 
3609+         exp_idx  =  Index ([5 , 3 , 3 ], dtype = 'int64' , name = 'idx' )
3610+         expected  =  Series ([np .nan , 0.3 , 0.3 ], index = exp_idx , name = 's' )
3611+         idx  =  Index ([1 , 2 , 3 , 4 ], dtype = 'int64' , name = 'idx' )
3612+         result  =  Series ([0.1 , 0.2 , 0.3 , 0.4 ], index = idx , name = 's' ).loc [[5 , 3 , 3 ]]
3613+         assert_series_equal (result , expected , check_index_type = True )
3614+ 
3615+         exp_idx  =  Index ([5 , 4 , 4 ], dtype = 'int64' , name = 'idx' )
3616+         expected  =  Series ([np .nan , 0.4 , 0.4 ], index = exp_idx , name = 's' )
3617+         idx  =  Index ([1 , 2 , 3 , 4 ], dtype = 'int64' , name = 'idx' )
3618+         result  =  Series ([0.1 , 0.2 , 0.3 , 0.4 ], index = idx , name = 's' ).loc [[5 , 4 , 4 ]]
3619+         assert_series_equal (result , expected , check_index_type = True )
3620+ 
3621+         exp_idx  =  Index ([7 , 2 , 2 ], dtype = 'int64' , name = 'idx' )
3622+         expected  =  Series ([0.4 , np .nan , np .nan ], index = exp_idx , name = 's' )
3623+         idx  =  Index ([4 , 5 , 6 , 7 ], dtype = 'int64' , name = 'idx' )
3624+         result  =  Series ([0.1 , 0.2 , 0.3 , 0.4 ], index = idx , name = 's' ).loc [[7 , 2 , 2 ]]
3625+         assert_series_equal (result , expected , check_index_type = True )
3626+ 
3627+         exp_idx  =  Index ([4 , 5 , 5 ], dtype = 'int64' , name = 'idx' )
3628+         expected  =  Series ([0.4 , np .nan , np .nan ], index = exp_idx , name = 's' )
3629+         idx  =  Index ([1 , 2 , 3 , 4 ], dtype = 'int64' , name = 'idx' )
3630+         result  =  Series ([0.1 , 0.2 , 0.3 , 0.4 ], index = idx , name = 's' ).loc [[4 , 5 , 5 ]]
3631+         assert_series_equal (result , expected , check_index_type = True )
3632+ 
3633+         # iloc 
3634+         exp_idx  =  Index ([2 , 2 , 1 , 1 ], dtype = 'int64' , name = 'idx' )
3635+         expected  =  Series ([0.2 , 0.2 , 0.1 , 0.1 ], index = exp_idx , name = 's' )
3636+         result  =  ser .iloc [[1 ,1 ,0 ,0 ]]
3637+         assert_series_equal (result , expected , check_index_type = True )
3638+ 
3639+     def  test_series_partial_set_datetime (self ):
3640+         # GH 11497 
3641+ 
3642+         idx  =  date_range ('2011-01-01' , '2011-01-02' , freq = 'D' , name = 'idx' )
3643+         ser  =  Series ([0.1 , 0.2 ], index = idx , name = 's' )
3644+ 
3645+         result  =  ser .loc [[Timestamp ('2011-01-01' ), Timestamp ('2011-01-02' )]]
3646+         exp  =  Series ([0.1 , 0.2 ], index = idx , name = 's' )
3647+         assert_series_equal (result , exp , check_index_type = True )
3648+ 
3649+         keys  =  [Timestamp ('2011-01-02' ), Timestamp ('2011-01-02' ), Timestamp ('2011-01-01' )]
3650+         exp  =  Series ([0.2 , 0.2 , 0.1 ], index = pd .DatetimeIndex (keys , name = 'idx' ), name = 's' )
3651+         assert_series_equal (ser .loc [keys ], exp , check_index_type = True )
3652+ 
3653+         keys  =  [Timestamp ('2011-01-03' ), Timestamp ('2011-01-02' ), Timestamp ('2011-01-03' )]
3654+         exp  =  Series ([np .nan , 0.2 , np .nan ], index = pd .DatetimeIndex (keys , name = 'idx' ), name = 's' )
3655+         assert_series_equal (ser .loc [keys ], exp , check_index_type = True )
3656+ 
3657+     def  test_series_partial_set_period (self ):
3658+         # GH 11497 
3659+ 
3660+         idx  =  pd .period_range ('2011-01-01' , '2011-01-02' , freq = 'D' , name = 'idx' )
3661+         ser  =  Series ([0.1 , 0.2 ], index = idx , name = 's' )
3662+ 
3663+         result  =  ser .loc [[pd .Period ('2011-01-01' , freq = 'D' ), pd .Period ('2011-01-02' , freq = 'D' )]]
3664+         exp  =  Series ([0.1 , 0.2 ], index = idx , name = 's' )
3665+         assert_series_equal (result , exp , check_index_type = True )
3666+ 
3667+         keys  =  [pd .Period ('2011-01-02' , freq = 'D' ), pd .Period ('2011-01-02' , freq = 'D' ),
3668+                 pd .Period ('2011-01-01' , freq = 'D' )]
3669+         exp  =  Series ([0.2 , 0.2 , 0.1 ], index = pd .PeriodIndex (keys , name = 'idx' ), name = 's' )
3670+         assert_series_equal (ser .loc [keys ], exp , check_index_type = True )
3671+ 
3672+         keys  =  [pd .Period ('2011-01-03' , freq = 'D' ), pd .Period ('2011-01-02' , freq = 'D' ),
3673+                 pd .Period ('2011-01-03' , freq = 'D' )]
3674+         exp  =  Series ([np .nan , 0.2 , np .nan ], index = pd .PeriodIndex (keys , name = 'idx' ), name = 's' )
3675+         assert_series_equal (ser .loc [keys ], exp , check_index_type = True )
35573676
35583677    def  test_partial_set_invalid (self ):
35593678
0 commit comments