@@ -2102,25 +2102,25 @@ def test_merge_multiindex_columns():
2102
2102
# The original cause of this issue come from a bug lexsort_depth and is tested in
2103
2103
# test_lexsort_depth
2104
2104
2105
- index_tuples = []
2106
2105
letters = ["a" , "b" , "c" , "d" ]
2107
2106
numbers = ["1" , "2" , "3" ]
2108
-
2109
- for l in letters :
2110
- for n in numbers :
2111
- index_tuples .append ([l , n ])
2112
-
2113
- index = pd .MultiIndex .from_tuples (index_tuples , names = ["outer" , "inner" ])
2107
+ index = pd .MultiIndex .from_product ((letters , numbers ), names = ["outer" , "inner" ])
2114
2108
2115
2109
frame_x = pd .DataFrame (columns = index )
2116
2110
frame_x ["id" ] = ""
2117
-
2118
2111
frame_y = pd .DataFrame (columns = index )
2119
2112
frame_y ["id" ] = ""
2120
2113
2121
2114
l_suf = "_x"
2122
2115
r_suf = "_y"
2123
- expected_labels = sum (([l + l_suf , l + r_suf ] for l in letters ), [])
2124
- merged_frame = frame_x .merge (frame_y , on = "id" , suffixes = ((l_suf , r_suf ))).columns
2125
- for label in expected_labels :
2126
- assert label in merged_frame
2116
+ result = frame_x .merge (frame_y , on = "id" , suffixes = ((l_suf , r_suf )))
2117
+
2118
+ # Constructing the expected results
2119
+ expected_labels = [l + l_suf for l in letters ] + [l + r_suf for l in letters ]
2120
+ expected_index = pd .MultiIndex .from_product (
2121
+ [expected_labels , numbers ], names = ["outer" , "inner" ]
2122
+ )
2123
+ expected = pd .DataFrame (columns = expected_index )
2124
+ expected ["id" ] = ""
2125
+
2126
+ tm .assert_frame_equal (result , expected )
0 commit comments