@@ -538,3 +538,40 @@ def test_concat_multiindex_datetime_nat():
538
538
{"a" : [1.0 , np .nan ], "b" : 2 }, MultiIndex .from_tuples ([(1 , pd .NaT ), (2 , pd .NaT )])
539
539
)
540
540
tm .assert_frame_equal (result , expected )
541
+
542
+
543
+ def test_concat_float_datetime64 (using_array_manager ):
544
+ # GH#32934
545
+ df_time = DataFrame ({"A" : pd .array (["2000" ], dtype = "datetime64[ns]" )})
546
+ df_float = DataFrame ({"A" : pd .array ([1.0 ], dtype = "float64" )})
547
+
548
+ expected = DataFrame (
549
+ {
550
+ "A" : [
551
+ pd .array (["2000" ], dtype = "datetime64[ns]" )[0 ],
552
+ pd .array ([1.0 ], dtype = "float64" )[0 ],
553
+ ]
554
+ },
555
+ index = [0 , 0 ],
556
+ )
557
+ result = concat ([df_time , df_float ])
558
+ tm .assert_frame_equal (result , expected )
559
+
560
+ expected = DataFrame ({"A" : pd .array ([], dtype = "object" )})
561
+ result = concat ([df_time .iloc [:0 ], df_float .iloc [:0 ]])
562
+ tm .assert_frame_equal (result , expected )
563
+
564
+ expected = DataFrame ({"A" : pd .array ([1.0 ], dtype = "object" )})
565
+ result = concat ([df_time .iloc [:0 ], df_float ])
566
+ tm .assert_frame_equal (result , expected )
567
+
568
+ if not using_array_manager :
569
+ expected = DataFrame ({"A" : pd .array (["2000" ], dtype = "datetime64[ns]" )})
570
+ result = concat ([df_time , df_float .iloc [:0 ]])
571
+ tm .assert_frame_equal (result , expected )
572
+ else :
573
+ expected = DataFrame ({"A" : pd .array (["2000" ], dtype = "datetime64[ns]" )}).astype (
574
+ {"A" : "object" }
575
+ )
576
+ result = concat ([df_time , df_float .iloc [:0 ]])
577
+ tm .assert_frame_equal (result , expected )
0 commit comments