@@ -2151,6 +2151,25 @@ def test_concat_multiindex_rangeindex(self):
2151
2151
exp = df .iloc [[2 , 3 , 4 , 5 ], :]
2152
2152
tm .assert_frame_equal (res , exp )
2153
2153
2154
+ def test_concat_multiindex_dfs_with_deepcopy (self ):
2155
+ # GH 9967
2156
+ from copy import deepcopy
2157
+ example_multiindex1 = pd .MultiIndex .from_product ([['a' ], ['b' ]])
2158
+ example_dataframe1 = pd .DataFrame ([0 ], index = example_multiindex1 )
2159
+
2160
+ example_multiindex2 = pd .MultiIndex .from_product ([['a' ], ['c' ]])
2161
+ example_dataframe2 = pd .DataFrame ([1 ], index = example_multiindex2 )
2162
+
2163
+ example_dict = {'s1' : example_dataframe1 , 's2' : example_dataframe2 }
2164
+ result = pd .concat (deepcopy (example_dict ), names = ['testname' ])
2165
+ expected_index = pd .MultiIndex (levels = [['s1' , 's2' ],
2166
+ ['a' ],
2167
+ ['b' , 'c' ]],
2168
+ labels = [[0 , 1 ], [0 , 0 ], [0 , 1 ]],
2169
+ names = ['testname' , None , None ])
2170
+ expected = pd .DataFrame (np .array ([[0 ], [1 ]]), index = expected_index )
2171
+ tm .assert_frame_equal (result , expected )
2172
+
2154
2173
2155
2174
if __name__ == '__main__' :
2156
2175
nose .runmodule (argv = [__file__ , '-vvs' , '-x' , '--pdb' , '--pdb-failure' ],
0 commit comments