Closed
Description
Pandas version checks
-
I have checked that this issue has not already been reported.
-
I have confirmed this bug exists on the latest version of pandas.
-
I have confirmed this bug exists on the main branch of pandas.
Reproducible Example
import pandas as pd
pd.Series([4, 5]).combine_first(pd.Series([6, 7, 8]))
0 4.0
1 5.0
2 8.0
dtype: float64
pd.Series([4, 5]).to_frame().combine_first(pd.Series([6, 7, 8]).to_frame())[0]
0 4
1 5
2 8
Name: 0, dtype: int64
Issue Description
In issue #39051 DataFrame.combine_first was fixed to preserve type. The problem still exists for Series.combine_first however. In the example here, int is converted to float when Series.combine_first is used, but not when DataFrame.combine_first is used.
Expected Behavior
Expected behavior:
pd.Series([4, 5]).combine_first(pd.Series([6, 7, 8]))
0 4
1 5
2 8
dtype: int64
Installed Versions
Pandas version 1.5.3