scikit-learn SimpleImputer的get_feature_names_out方法报错咨询
问题原因与解决方案
核心原因
get_feature_names_out方法是在scikit-learn 1.1.0版本才被添加到SimpleImputer中的,你当前使用的1.0.2版本不支持这个方法,所以出现AttributeError,并非操作疏漏。
解决方案
方案1:升级scikit-learn版本
执行以下命令升级到1.1.0及以上版本,升级后原代码即可正常运行:
pip install --upgrade scikit-learn
方案2:不升级版本,直接复用原列名
由于SimpleImputer仅填充缺失值,不会改变列的数量或顺序,直接使用原始DataFrame的列名即可:
import pandas as pd import numpy as np # 补充原代码缺失的numpy导入 data = pd.DataFrame({'col1': [1,np.nan,2], 'col2': [3,4,5]}) from sklearn.impute import SimpleImputer simple_imputer = SimpleImputer() imputed_data = simple_imputer.fit_transform(data) # 直接使用原始数据的列名 pd.DataFrame(imputed_data, columns=data.columns)
内容的提问来源于stack exchange,提问作者Joseph
相关产品推荐
相关产品推荐

