@@ -2371,13 +2371,35 @@ def test_merge_suffix(col1, col2, kwargs, expected_cols):
2371
2371
2372
2372
@pytest .mark .parametrize ("force_suffixes" , [False , True ])
2373
2373
def 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 ):
2374
2394
a = DataFrame ({"A" : [1 , 2 , 3 , 98 ], "B" : [4 , 5 , 6 , 99 ], "ALPHABET" : ["A" , "B" , "C" , "Z" ]})
2375
2395
b = DataFrame ({"a" : [1 , 2 , 3 ], "b" : [4 , 5 , 6 ], "alphabet" : ["a" , "b" , "c" ]})
2376
2396
2377
2397
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" ])
2379
2400
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" ])
2381
2403
2382
2404
result = merge (a , b , left_on = ["A" , "B" ], right_on = ["a" , "b" ],
2383
2405
force_suffixes = force_suffixes )
0 commit comments