Skip to content

Commit 8fa3cdb

Browse files
committed
Add a simple test for force-suffixes
1 parent c49ed5e commit 8fa3cdb

File tree

1 file changed

+24
-2
lines changed

1 file changed

+24
-2
lines changed

pandas/tests/reshape/merge/test_merge.py

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2371,13 +2371,35 @@ def test_merge_suffix(col1, col2, kwargs, expected_cols):
23712371

23722372
@pytest.mark.parametrize("force_suffixes", [False, True])
23732373
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):
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

Comments
 (0)