@@ -3298,42 +3298,55 @@ def test_loc_reindexing_of_empty_index(self):
32983298 expected = DataFrame (index = [1 , 1 , 2 , 2 ], data = ["1" , "1" , "2" , "2" ])
32993299 tm .assert_frame_equal (df , expected )
33003300
3301- def test_loc_set_series_to_multiple_columns (self ):
3301+ @pytest .mark .parametrize (
3302+ "df, row_index, col_index, setting_series, expected_df" ,
3303+ [
3304+ [
3305+ DataFrame ([[1 , 2 , 3 ], [4 , 5 , 6 ]], columns = list ("ABC" )),
3306+ slice (0 , 3 ),
3307+ ["A" , "B" , "C" ],
3308+ Series ([10 , 20 , 30 ]),
3309+ DataFrame ([[10 , 10 , 10 ], [20 , 20 , 20 ]], columns = list ("ABC" )),
3310+ ],
3311+ [
3312+ DataFrame ([[1 , 2 , 3 ], [4 , 5 , 6 ]], columns = list ("ABC" )),
3313+ slice (None ),
3314+ ["A" , "B" , "C" ],
3315+ Series ([10 , 20 , 30 ]),
3316+ DataFrame ([[10 , 10 , 10 ], [20 , 20 , 20 ]], columns = list ("ABC" )),
3317+ ],
3318+ [
3319+ DataFrame ([[1 , 2 , 3 ], [4 , 5 , 6 ], [7 , 8 , 9 ]], columns = list ("ABC" )),
3320+ [True , True , True ],
3321+ ["A" , "B" , "C" ],
3322+ Series ([10 , 20 , 30 ]),
3323+ DataFrame (
3324+ [[10 , 10 , 10 ], [20 , 20 , 20 ], [30 , 30 , 30 ]], columns = list ("ABC" )
3325+ ),
3326+ ],
3327+ [
3328+ DataFrame ([[1 , 2 , 3 ], [4 , 5 , 6 ], [7 , 8 , 9 ]], columns = list ("ABC" )),
3329+ slice (0 , 4 ),
3330+ ["A" , "B" , "C" ],
3331+ Series ([10 , 20 , 30 ]),
3332+ DataFrame (
3333+ [[10 , 10 , 10 ], [20 , 20 , 20 ], [30 , 30 , 30 ]], columns = list ("ABC" )
3334+ ),
3335+ ],
3336+ [
3337+ DataFrame ([[1 , 2 , 3 ], [4 , 5 , 6 ], [7 , 8 , 9 ]], columns = list ("ABC" )),
3338+ slice (None ),
3339+ slice ("A" , "C" ),
3340+ Series ([10 , 20 , 30 ]),
3341+ DataFrame (
3342+ [[10 , 10 , 10 ], [20 , 20 , 20 ], [30 , 30 , 30 ]], columns = list ("ABC" )
3343+ ),
3344+ ],
3345+ ],
3346+ )
3347+ def test_loc_set_series_to_multiple_columns (
3348+ self , df , row_index , col_index , setting_series , expected_df
3349+ ):
33023350 # GH 59933
3303- df = DataFrame ([[1 , 2 , 3 ], [4 , 5 , 6 ]], columns = list ("ABC" ))
3304- df .loc [0 :3 , ["A" , "B" , "C" ]] = Series ([10 , 20 , 30 ])
3305- expected = DataFrame ([[10 , 10 , 10 ], [20 , 20 , 20 ]], columns = list ("ABC" ))
3306- tm .assert_frame_equal (df , expected )
3307-
3308- df = DataFrame ([[1 , 2 , 3 ], [4 , 5 , 6 ]], columns = list ("ABC" ))
3309- df .loc [:, ["A" , "B" , "C" ]] = Series ([10 , 20 , 30 ])
3310- expected = DataFrame ([[10 , 10 , 10 ], [20 , 20 , 20 ]], columns = list ("ABC" ))
3311- tm .assert_frame_equal (df , expected )
3312-
3313- df = DataFrame ([[1 , 2 , 3 ], [4 , 5 , 6 ], [7 , 8 , 9 ]], columns = list ("ABC" ))
3314- df .loc [df ["A" ] > 0 , ["A" , "B" , "C" ]] = Series ([10 , 20 , 30 ])
3315- expected = DataFrame (
3316- [[10 , 10 , 10 ], [20 , 20 , 20 ], [30 , 30 , 30 ]], columns = list ("ABC" )
3317- )
3318- tm .assert_frame_equal (df , expected )
3319-
3320- df = DataFrame ([[1 , 2 , 3 ], [4 , 5 , 6 ], [7 , 8 , 9 ]], columns = list ("ABC" ))
3321- df .loc [:, ["A" , "B" , "C" ]] = Series ([10 , 20 , 30 ])
3322- expected = DataFrame (
3323- [[10 , 10 , 10 ], [20 , 20 , 20 ], [30 , 30 , 30 ]], columns = list ("ABC" )
3324- )
3325- tm .assert_frame_equal (df , expected )
3326-
3327- df = DataFrame ([[1 , 2 , 3 ], [4 , 5 , 6 ], [7 , 8 , 9 ]], columns = list ("ABC" ))
3328- df .loc [0 :4 , ["A" , "B" , "C" ]] = Series ([10 , 20 , 30 ])
3329- expected = DataFrame (
3330- [[10 , 10 , 10 ], [20 , 20 , 20 ], [30 , 30 , 30 ]], columns = list ("ABC" )
3331- )
3332- tm .assert_frame_equal (df , expected )
3333-
3334- df = DataFrame ([[1 , 2 , 3 ], [4 , 5 , 6 ], [7 , 8 , 9 ]], columns = list ("ABC" ))
3335- df .loc [:, "A" :"C" ] = Series ([10 , 20 , 30 ])
3336- expected = DataFrame (
3337- [[10 , 10 , 10 ], [20 , 20 , 20 ], [30 , 30 , 30 ]], columns = list ("ABC" )
3338- )
3339- tm .assert_frame_equal (df , expected )
3351+ df .loc [row_index , col_index ] = setting_series
3352+ tm .assert_frame_equal (df , expected_df )
0 commit comments