我想结合 sklearn 的 imputation 和 Panda 的 Ffill 来填充缺失的数据。这就是我的数据框,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
我想使用 FfillNaN
用前一个值填充仅包含(例如第 2 行)的行。
如果行仅包含几个NaN
,例如,如果至少有 1 个值,则使用插补以行中最频繁的值填充 NaN。
我正在使用 LabelEncoder 将字符串值转换为整数——它是按字母顺序排列的。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
using的行ffill
。
然后我使用 LabelEncoder 和插补来填充其他NaN
行中最频繁的值。
如果我可以选择仅包含的行NaN
并将ffill
函数仅应用于这些行,那么我可以对另一个 Nan 使用插补。我怎样才能做到这一点?