有没有办法用数据帧中另一列的值替换空值?



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

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

在这里,我想以work_zip(如果是)首先看起来的方式填充Home_Zip中的缺失值 不为 null 返回该值,否则返回family_zip。如果在所有值的情况下 为空,则返回未知。

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

您可以使用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

最新更新