如何用另一行的值替换 NaN?

How do I replace NaNs with the values from another row?

我有一个 df,其中一些行包含 NaN。我想用该行最相似行的相应变量值来估算那些。我用所有具有 NaN 的行创建了我的 df 的一个子集,并创建了一个列表,其中包含与子集中的行最相似的行的索引。 现在,我有了包含缺失值的行的 ID 以及与该行最相似的行的 ID。

假设这是我的 df:


    ID  A   B   C
    01  10  20  40.0
    02  12  19  43.0
    03  10  NaN NaN

我想要的是用其他行的值替换 NaN。 预期结果:


    ID  A   B   C
    01  10  20  40.0
    02  12  19  43.0
    03  10  20  40.0

这似乎并不能解决问题:


    df.loc[df['ID'] == 03]['B'] = df.loc[df['ID'] == 01]['B']

理想情况下,我会用另一行的值填充 na() 一行中的所有 NaN。

您可以 fillna 一列或一行,

df.fillna(df.iloc[0])