かなり曖昧な質問になってしまい、恐縮ですが、もし知見のある方がいらっしゃいましたらご教示ください。
Nanを含む列を持つX_train(3000,1421)に対して、SimpleImputerで欠損値補完を実施しようとしておりました。
その後、その結果を再度DataFrame型に格納する処理を行いたいです。
そこで以下のように処理を実行しました。
python
1from sklearn.impute import SimpleImputer 2imp = SimpleImputer() 3imp.fit(X_train) 4X_train = pd.DataFrame(imp.transform(X_train), columns=X_train.columns.values)
すると、以下のエラーが出力されました。
python
1ValueError: Wrong number of items passed 1408, placement implies 1421
そのため、処理を分解して追っていったところ、
python
1from sklearn.impute import SimpleImputer 2imp = SimpleImputer() 3imp.fit(X_train) 4imp.transform(X_train).shape★
★の部分で次元を見たところ、3000,1408となっていました。
なので、エラーの原因としては、SimpleImputerで欠損値補完を行ったあとのnparrayのカラム数が1408である一方、DataFrame型に格納する際のindexとして指定しているカラム数は1421なので、不一致としてエラーとなっているものと考えています。
そこで以下についてご教示いただきたいです。
「imp.transform(X_train)を行った時に、カラム数が減少する(削除される)のはどういう場合か」
これがわかれば、原因となったカラムを削除した状態でDataFrameに格納(1408列として)できると考えています。
お手数おかけしますがよろしくお願いします
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。