@@ -2371,13 +2371,35 @@ def test_merge_suffix(col1, col2, kwargs, expected_cols):
23712371
23722372@pytest .mark .parametrize ("force_suffixes" , [False , True ])
23732373def test_merge_suffix_with_force_simple (force_suffixes ):
2374+ df1 = pd .DataFrame ({
2375+ 'ID' : [1 , 2 , 3 ],
2376+ 'Value' : ['A' , 'B' , 'C' ]
2377+ })
2378+
2379+ df2 = pd .DataFrame ({
2380+ 'ID' : [2 , 3 , 4 ],
2381+ 'Value' : ['D' , 'E' , 'F' ]
2382+ })
2383+
2384+ if force_suffixes :
2385+ expected = DataFrame ([[2 , 2 , "B" , "D" ], [3 , 3 , "C" , "E" ]], columns = ["ID_left" , "Value_left" , "ID_right" , "Value_right" ])
2386+ else :
2387+ expected = DataFrame ([[2 , "B" , "D" ], [3 , "C" , "E" ]], columns = ["ID" , "Value_left" , "Value_right" ])
2388+
2389+ result = merge (df1 , df2 , on = "ID" , suffixes = ("_left" , "_right" ), force_suffixes = force_suffixes )
2390+ tm .assert_frame_equal (result , expected )
2391+
2392+ @pytest .mark .parametrize ("force_suffixes" , [False , True ])
2393+ def test_merge_suffix_with_force_multi_column (force_suffixes ):
23742394 a = DataFrame ({"A" : [1 , 2 , 3 , 98 ], "B" : [4 , 5 , 6 , 99 ], "ALPHABET" : ["A" , "B" , "C" , "Z" ]})
23752395 b = DataFrame ({"a" : [1 , 2 , 3 ], "b" : [4 , 5 , 6 ], "alphabet" : ["a" , "b" , "c" ]})
23762396
23772397 if force_suffixes :
2378- expected = DataFrame ([[1 , 4 , "A" , 1 , 4 , "a" ], [2 , 5 , "B" , 2 , 5 , "b" ], [3 , 6 , "C" , 3 , 6 , "c" ]], columns = ["A_x" , "B_x" , "ALPHABET_x" , "a_y" , "b_y" , "alphabet_y" ])
2398+ expected = DataFrame ([[1 , 4 , "A" , 1 , 4 , "a" ], [2 , 5 , "B" , 2 , 5 , "b" ], [3 , 6 , "C" , 3 , 6 , "c" ]],
2399+ columns = ["A_x" , "B_x" , "ALPHABET_x" , "a_y" , "b_y" , "alphabet_y" ])
23792400 else :
2380- expected = DataFrame ([[1 , 4 , "A" , 1 , 4 , "a" ], [2 , 5 , "B" , 2 , 5 , "b" ], [3 , 6 , "C" , 3 , 6 , "c" ]], columns = ["A" , "B" , "ALPHABET" , "a" , "b" , "alphabet" ])
2401+ expected = DataFrame ([[1 , 4 , "A" , 1 , 4 , "a" ], [2 , 5 , "B" , 2 , 5 , "b" ], [3 , 6 , "C" , 3 , 6 , "c" ]],
2402+ columns = ["A" , "B" , "ALPHABET" , "a" , "b" , "alphabet" ])
23812403
23822404 result = merge (a , b , left_on = ["A" , "B" ], right_on = ["a" , "b" ],
23832405 force_suffixes = force_suffixes )
0 commit comments