diff --git a/pandas/tools/merge.py b/pandas/tools/merge.py index 88b25f160cdfd..9ab83cf828188 100644 --- a/pandas/tools/merge.py +++ b/pandas/tools/merge.py @@ -947,9 +947,10 @@ def get_result(self): name = com._consensus_name_attr(self.objs) return Series(new_data, index=self.new_axes[0], name=name) elif self._is_series: - data = dict(zip(self.new_axes[1], self.objs)) - return DataFrame(data, index=self.new_axes[0], - columns=self.new_axes[1]) + data = dict(itertools.izip(xrange(len(self.objs)), self.objs)) + tmpdf = DataFrame(data, index=self.new_axes[0]) + tmpdf.columns = self.new_axes[1] + return tmpdf else: new_data = self._get_concatenated_data() return self.objs[0]._from_axes(new_data, self.new_axes) diff --git a/pandas/tools/tests/test_merge.py b/pandas/tools/tests/test_merge.py index a046cb83ee13a..b5c205eb5fede 100644 --- a/pandas/tools/tests/test_merge.py +++ b/pandas/tools/tests/test_merge.py @@ -1671,6 +1671,16 @@ def test_concat_bug_1719(self): self.assertEqual(len(left), len(right)) + def test_concat_bug_2972(self): + ts0 = Series(np.zeros(5)) + ts1 = Series(np.ones(5)) + ts0.name = ts1.name = 'same name' + result = concat([ts0, ts1], axis=1) + + expected = DataFrame({0: ts0, 1: ts1}) + expected.columns=['same name', 'same name'] + assert_frame_equal(result, expected) + class TestOrderedMerge(unittest.TestCase):