我对Python(和这个网站)完全不熟悉,目前正在尝试用模式替换特定dataframe列中的NA值。我试过各种方法,但都不管用。请帮我找出我做错了什么:
注意:我使用的所有列都是float64类型。我所有的代码都在运行,但是当我用列中的df[cols_mode].isnull().sum()检查空值时,它保持不变。
方法1:cols_mode = ['race', 'goal', 'date', 'go_out', 'career_c']
df[cols_mode].apply(lambda x: x.fillna(x.mode, inplace=True))
我也试过输入法,但遇到了同样的结果
方法2:for column in df[['race', 'goal', 'date', 'go_out', 'career_c']]:
mode = df[column].mode()
df[column] = df[column].fillna(mode)
方法3: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)
方法4:
我的方法越来越像是一个手动过程,最后这个方法起作用了: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)