Pandas Ffill仅包含NaN的行

时间:2016-08-15 16:23:07

标签: pandas scikit-learn imputation

我想结合sklearn的估算和Panda的Ffill来填补缺失的数据。 这就是我的dataFrame,df看起来像

FeatA  FeatB  FeatC  FeatD
  B      A      B      D
 NaN    NaN    NaN    NaN
  A      A      B       C
 NaN     A      A       A
 NaN     B      A       A

我想使用Ffill来填充仅包含NaN的行(例如第2行)和前一个值。

如果行只包含少量NaN,例如,如果至少有1个值,请使用插补来填充行中最常值的NaN。

我正在使用LabelEncoder将String值转换为整数 - 它是按字母顺序排列的。 A=0, B=1, C=2, D = 3。  为了确保NaN得到值4,我将NaN转换为“Z” - 使用data = df.fillna("Z")

然后我对数据进行了估算,以便Z中的任何值都填充了行中最常用的值 - imp = Imputer(missing_values=4, strategy= 'most_frequent', axis=1)

因此,我想使用NaN填充只有ffill的行。

然后我使用LabelEncoder和imputation来填充行中最频繁值的其他NaN

如果我可以选择仅包含NaN的行并将ffill函数仅应用于那些行,那么我可以在另一个Nan上使用插补。我怎么能这样做?

0 个答案:

没有答案