我对 Python(和这个网站)完全陌生,目前正在尝试用它们的模式替换特定数据帧列中的 NA 值。我尝试过各种方法都不起作用。请帮助我发现我做错了什么:
注意:我正在使用的所有列都是float64
类型。我的所有代码都运行,但是当我检查空金额时df[cols_mode].isnull().sum()
在列中,它保持不变。
方法一:
cols_mode = ['race', 'goal', 'date', 'go_out', 'career_c']
df[cols_mode].apply(lambda x: x.fillna(x.mode, inplace=True))
我也尝试了Imputer方法但遇到了相同的结果
方法二:
for column in df[['race', 'goal', 'date', 'go_out', 'career_c']]:
mode = df[column].mode()
df[column] = df[column].fillna(mode)
方法三:
df['race'].fillna(df.race.mode(), inplace=True)
df['goal'].fillna(df.goal.mode(), inplace=True)
df['date'].fillna(df.date.mode(), inplace=True)
df['go_out'].fillna(df.go_out.mode(), inplace=True)
df['career_c'].fillna(df.career_c.mode(), inplace=True)
方法四:我的方法越来越成为手动过程,最后这个有效:
df['race'].fillna(2.0, inplace=True)
df['goal'].fillna(1.0, inplace=True)
df['date'].fillna(6.0, inplace=True)
df['go_out'].fillna(2.0, inplace=True)
df['career_c'].fillna(2.0, inplace=True)