有没有一种方法可以将空值替换为数据框中另一列的值?

时间:2020-09-15 02:35:12

标签: python pandas dataframe

我正在使用缺少许多值的数据框。 Iam正在寻找替换缺失值的有效方法。以下是数据框的示例:

s/n     Name      Home_Zip      work_zip        Family_zip
 1      John      56729         N/A             836AB
 2      sawn      N/A           N/A             73836
 3      Michael   N/A          839CD            83093
 4      Nathan    93932        78393            N/a
 5      Jack      N/A          N/A              N/A

在这里,我想用Home_Zip中首先出现的方式填充work_zip中的缺失值 不是null的返回该值,否则返回family_zip。如果是全部价值 为null时,它将返回未知数。

 s/n     Name      Home_Zip     work_zip        Family_zip
 1      John      56729         N/A              836AB
 2      sawn      73836         N/A              73836
 3      Michael   839CD         839CD            83093
 4      Nathan    93932         78393            N/a
 5      Jack      Unkown        N/A             N/A

1 个答案:

答案 0 :(得分:1)

您可以使用bfill,然后使用fillna()

df['Home_Zip'] = df.iloc[:, 2:].bfill(1).fillna('Unknown')['Home_Zip']

或链接多个fillna

df['Home_Zip'] = (df['Home_Zip'].fillna(df['work_zip'])
                     .fillna(df['Family_zip'])
                     .fillna('Unknown')
                 )

输出:

   s/n     Name Home_Zip work_zip Family_zip
0    1     John    56729      NaN      836AB
1    2     sawn    73836      NaN      73836
2    3  Michael    839CD    839CD      83093
3    4   Nathan    93932    78393        N/a
4    5     Jack  Unknown      NaN        NaN