用单独的Pan​​das系列中的值替换NaN值(在Pandas DataFrame中)的最佳方法是什么?

时间:2019-08-07 18:16:01

标签: python pandas scikit-learn

我从Pandas DataFrame开始,该列的列中包含许多NaN值。

我将此熊猫数据框分为两个数据框:非NaN和NaN。

我估计了线性回归模型以尝试填写NaN值(作为其他列的函数)。

因此,我现在有一个单独的熊猫系列,其中包含估计值。其长度与NaN DataFrame的长度相同。

我现在想将这些估计值放回NaN DataFrame中,以便最终将pd.concat()这两个Dataframe集成到一个DataFrame中,然后用于分析。

我无法找到一种方法将这些值放回NaN DataFrame中正确的行中。每次尝试时,只会填充一些NaN(并且顺序可能错误)。似乎与它们的索引方式有关。

df_nan["Column"] = y_predicted

这是我尝试执行的方法,但是它仅填充了某些行,而且是错误地。可能与索引有关?

1 个答案:

答案 0 :(得分:1)

我认为一种解决方法是:保留原始数据框,并在要插入的列上使用Apply。

df['imputed_column'] = df.apply(lambda x: x.Column if(pd.notnull(x.Column)) else y_predicted[x.name],axis=1)

如果下一行具有空值(x.name是该行的索引),则将获得估计值。否则,它将保持相同的值。