実現したいこと
'horsepower'は馬力のデータが入っている変数なのですが、df_train.info()を実行すると、object型ということでした。元データを見てみると、?というデータが9件入っていました。
?を欠損値(NaN)に変えて、欠損値に平均値を代入したいと考えています。
私がやったこと
1. ?を欠損値に置き換える
python
1df_train['horsepower'].isnull().sum()
で欠損値の件数を調べたら0件でした。
いずれにしても?は邪魔なので、NaNにするために
python
1df_train['horsepower'] = df_train['horsepower'].replace('?', np.nan)
を実行して?をNaNに変換することができました。
python
1df_train.isnull().sum()
を実行して得られた件数は?の件数と同じく9件でした。
2. 欠損値に平均値を代入する
以前学習したpythonの教材で、欠損値(NaN)を平均値に置き換えるために下のコードを見つけました。
python
1sample_data_frame.fillna(sample_data_frame.mean())
sample_data_frameをこの分析で使用しているファイル名df_trainに変えて、次の実行しました。
python
1df_train['horsepower'] = df_train['horsepower'].fillna(df_train['horsepower'].mean())
を実行したところ
TypeError: can only concatenate str (not "int") to str
というエラー出てしまいました。str数値データのなかにNaNが混ざっているデータ構成は教材でも見かけるのにエラーになってしまいます。
dtypesで'horsepower'を調べたら、
dtype('O')
という結果が返ってきました。
どこを誤っているのでしょうか。
