如何用另一行的值替换 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])
我有一个 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])