@@ -255,3 +255,26 @@ def test_empty_dtype_coerce(self):
255
255
result = concat ([df1 , df2 ])
256
256
expected = df1 .dtypes
257
257
tm .assert_series_equal (result .dtypes , expected )
258
+
259
+ def test_concat_empty_dataframe (self ):
260
+ # 39037
261
+ df1 = DataFrame (columns = ["a" , "b" ])
262
+ df2 = DataFrame (columns = ["b" , "c" ])
263
+ result = concat ([df1 , df2 , df1 ])
264
+ expected = DataFrame (columns = ["a" , "b" , "c" ])
265
+ tm .assert_frame_equal (result , expected )
266
+
267
+ df3 = DataFrame (columns = ["a" , "b" ])
268
+ df4 = DataFrame (columns = ["b" ])
269
+ result = concat ([df3 , df4 ])
270
+ expected = DataFrame (columns = ["a" , "b" ])
271
+ tm .assert_frame_equal (result , expected )
272
+
273
+ def test_concat_empty_dataframe_different_dtypes (self ):
274
+ # 39037
275
+ df1 = DataFrame ({"a" : [1 , 2 , 3 ], "b" : ["a" , "b" , "c" ]})
276
+ df2 = DataFrame ({"a" : [1 , 2 , 3 ]})
277
+
278
+ result = concat ([df1 [:0 ], df2 [:0 ]])
279
+ assert result ["a" ].dtype == np .int64
280
+ assert result ["b" ].dtype == np .object_
0 commit comments