@@ -140,10 +140,14 @@ def test_combine_first_mixed_bug(self):
140140 )
141141 df2 = DataFrame ([[- 42.6 , np .nan , True ], [- 5.0 , 1.6 , False ]], index = [1 , 2 ])
142142
143- result = df1 .combine_first (df2 )[2 ]
143+ expected1 = pd .Series ([True , True , False ], name = 2 , dtype = object )
144+ expected2 = pd .Series ([True , True , False ], name = 2 , dtype = object )
145+
146+ result1 = df1 .combine_first (df2 )[2 ]
144147 result2 = df2 .combine_first (df1 )[2 ]
145148
146- tm .assert_series_equal (result , result2 )
149+ tm .assert_series_equal (result1 , expected1 )
150+ tm .assert_series_equal (result2 , expected2 )
147151
148152 # GH 3593, converting datetime64[ns] incorrectly
149153 df0 = DataFrame (
@@ -357,17 +361,21 @@ def test_combine_first_with_asymmetric_other(self, val):
357361 tm .assert_frame_equal (res , exp )
358362
359363
360- @pytest .mark .parametrize ("val" , [pd .NaT , np .nan , None ])
361- def test_combine_first_timestamp_bug (val ):
364+ @pytest .mark .parametrize ("val1, val2" , [
365+ (datetime (2020 , 1 , 1 ), datetime (2020 , 1 , 2 )),
366+ (pd .Period ("2020-01-01" , "D" ), pd .Period ("2020-01-02" , "D" )),
367+ (pd .Timedelta ('89 days' ), pd .Timedelta ('60 min' )),
368+ ])
369+ def test_combine_first_timestamp_bug (val1 , val2 , nulls_fixture ):
362370
363- df1 = pd .DataFrame ([[val , val ]], columns = ["a" , "b" ])
371+ df1 = pd .DataFrame ([[nulls_fixture , nulls_fixture ]], columns = ["a" , "b" ])
364372 df2 = pd .DataFrame (
365- [[datetime ( 2020 , 1 , 1 ), datetime ( 2020 , 1 , 2 ) ]], columns = ["b" , "c" ]
373+ [[val1 , val2 ]], columns = ["b" , "c" ]
366374 )
367375
368376 res = df1 .combine_first (df2 )
369377 exp = pd .DataFrame (
370- [[val , datetime ( 2020 , 1 , 1 ), datetime ( 2020 , 1 , 2 ) ]], columns = ["a" , "b" , "c" ]
378+ [[nulls_fixture , val1 , val2 ]], columns = ["a" , "b" , "c" ]
371379 )
372380
373381 tm .assert_frame_equal (res , exp )
0 commit comments