Skip to content

Commit 35beea8

Browse files
mroeschkejreback
authored andcommitted
TST: Concat MultiIndex dataframes with deepcopy (#9967) (#14936)
Add additional test + fix int32 error
1 parent f79bc7a commit 35beea8

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

pandas/tools/tests/test_concat.py

+21
Original file line numberDiff line numberDiff line change
@@ -2151,6 +2151,27 @@ def test_concat_multiindex_rangeindex(self):
21512151
exp = df.iloc[[2, 3, 4, 5], :]
21522152
tm.assert_frame_equal(res, exp)
21532153

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+
expected_index = pd.MultiIndex(levels=[['s1', 's2'],
2165+
['a'],
2166+
['b', 'c']],
2167+
labels=[[0, 1], [0, 0], [0, 1]],
2168+
names=['testname', None, None])
2169+
expected = pd.DataFrame([[0], [1]], index=expected_index)
2170+
result_copy = pd.concat(deepcopy(example_dict), names=['testname'])
2171+
tm.assert_frame_equal(result_copy, expected)
2172+
result_no_copy = pd.concat(example_dict, names=['testname'])
2173+
tm.assert_frame_equal(result_no_copy, expected)
2174+
21542175

21552176
if __name__ == '__main__':
21562177
nose.runmodule(argv=[__file__, '-vvs', '-x', '--pdb', '--pdb-failure'],

0 commit comments

Comments
 (0)