合并来自两个不同数据帧的两列以删除 Pandas 中的缺失值

Combing two columns from two different data frames to remove missing values in Pandas

我的第一个项目是泰坦尼克号数据集。为了估算变量 'Age' 的缺失值,我有一个线性回归模型 运行。现在,我有 2 个数据框如下 -

train_data.tail()

          Survived  Pclass     Sex   Age  SibSp  Parch   Fare Embarked
    886         0       2    male  27.0      0      0  13.00        S
    887         1       1  female  19.0      0      0  30.00        S
    888         0       3  female   NaN      1      2  23.45        S
    889         1       1    male  26.0      0      0  30.00        C
    890         0       3    male  32.0      0      0   7.75        Q

imp_age.head()

          Age
    859  27.0
    863  -8.0
    868  27.0
    878  27.0
    888  23.0

上面给出的第二个数据帧具有我想用来代替第一个数据帧的 'NaN' 值的年龄值。两个数据框的列名 'Age' 下都有此数据。

我尝试运行使用以下代码来获取合并的 df -

merged_df = train_data.merge(imp_age,how='outer',left_index=True,right_index=True)

但输出会创建一个额外的 'Age_y' 列,而不是将其与旧列合并 -

     Survived  Pclass     Sex  Age_x  SibSp  Parch   Fare Embarked  Age_y
886         0       2    male   27.0      0      0  13.00        S    NaN
887         1       1  female   19.0      0      0  30.00        S    NaN
888         0       3  female    NaN      1      2  23.45        S   23.0
889         1       1    male   26.0      0      0  30.00        C    NaN
890         0       3    male   32.0      0      0   7.75        Q    NaN

谁能帮我得到下面想要的输出。我在这方面做了很多来来去去,但由于我是 Python 的新手,所以我有点挣扎 -

      Survived  Pclass     Sex  Age    SibSp  Parch   Fare Embarked  
886         0       2    male   27.0      0      0  13.00        S   
887         1       1  female   19.0      0      0  30.00        S   
888         0       3  female   23.0      1      2  23.45        S   
889         1       1    male   26.0      0      0  30.00        C   
890         0       3    male   32.0      0      0   7.75        Q   

试试 fillna,

train_data['Age'] = train_data['Age'].fillna(imp_age['Age'])