我想结合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上使用插补。我怎么能这样做?