@@ -274,6 +274,36 @@ def test_concat_NaT_series_dataframe_all_NaT(self, tz1, tz2):
274274 result = concat ([first , second ])
275275 tm .assert_frame_equal (result , expected )
276276
277+ @pytest .mark .parametrize ("unit" , ["ns" , "us" , "ms" , "s" ])
278+ def test_concat_series_columns_nonoverlap_5min_units (self , unit ):
279+ # GH#58471
280+ idx1 = date_range ("2024-01-01" , periods = 24 * 12 , freq = "5min" , unit = unit )
281+ idx2 = date_range ("2024-01-02" , periods = 24 * 12 , freq = "5min" , unit = unit )
282+ s1 = Series (np .arange (len (idx1 )), index = idx1 , name = "a" )
283+ s2 = Series (np .arange (len (idx2 )), index = idx2 , name = "b" )
284+ df = concat ([s1 , s2 ], axis = 1 )
285+ result = df .index
286+ expected = date_range ("2024-01-01" , "2024-01-02 23:55" , freq = "5min" , unit = unit )
287+ tm .assert_index_equal (result , expected )
288+
289+ @pytest .mark .parametrize ("unit" , ["ns" , "us" , "ms" , "s" ])
290+ def test_concat_series_columns_month_end_units_order_insensitive (self , unit ):
291+ # GH#58471
292+ idx1 = date_range (start = "2015-01-31" , end = "2016-01-31" , freq = "ME" , unit = unit )
293+ idx2 = date_range (start = "2015-02-28" , end = "2016-02-29" , freq = "ME" , unit = unit )
294+ s1 = Series (np .arange (len (idx1 )), index = idx1 , name = "m1" )
295+ s2 = Series (np .arange (len (idx2 )), index = idx2 , name = "m2" )
296+ df1 = concat ([s1 , s2 ], axis = 1 )
297+ df2 = concat ([s2 , s1 ], axis = 1 )
298+
299+ result1 = df1 .index
300+ expected1 = idx1 .union (idx2 )
301+ tm .assert_index_equal (result1 , expected1 )
302+
303+ result2 = df2 .index
304+ expected2 = idx2 .union (idx1 )
305+ tm .assert_index_equal (result2 , expected2 )
306+
277307
278308class TestTimezoneConcat :
279309 def test_concat_tz_series (self ):
0 commit comments