4
私はPython(とこのウェブサイト)を全く新しくしており、現在特定のデータフレーム列のNA値をそのモードに置き換えようとしています。私は働いていない様々な方法を試みました。NA値をPythonのDataFrame列のモードに置き換えるにはどうすればいいですか?
注:私が扱っているすべての列は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))
私はあまりにもImputer方法を試みたが、方法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: 私の方法は、より多くの手動プロセスのとなり、最終的にこの1つは動作します:あなたはまだあなたがしたい行にアクセスする必要があるので、
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)
はあなたが交換する方法を見たことがありますか? http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.replace.html –
「方法2」の何が問題なのですか? – MaxU
@MaxU方法2がエラーを返しています。 'mode'は、単一の値ではなく、Seriesを返します。 –