gpt4 book ai didi

python - 将 Simple Imputer 与 Pandas 数据框一起使用?

转载 作者:行者123 更新时间:2023-12-05 00:47:13 26 4
gpt4 key购买 nike

我正在使用以下数据集:

https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data

它说有一些用“?”标记的缺失值。我想应用 SimpleImputer 库,我的代码如下:

file="breast_cancer"
df=pd.read_csv(file,names=['id', 'clump_thickness','unif_cell_size',
'unif_cell_shape', 'marg_adhesion', 'single_epith_cell_size',
'bare_nuclei', 'bland_chromatin', 'normal_nucleoli','mitoses','class'])
df.replace('?',np.NaN,inplace=True)
imp=SimpleImputer(missing_values="NaN")
idf=pd.DataFrame(imp.fit_transform(df))
idf.columns=df.columns
idf.index=df.index

所以我想替换所有的 ?具有平均值的所有列的值,并返回一个新的数据框。问题是我收到以下错误:

Input contains NaN, infinity or a value too large for dtype('float64').

我错过了什么?

谢谢

最佳答案

您正在尝试估算 "NaN"str,而您已将 ? 替换为 np.NaN .

np.nan 实例化 SimpleImputer 并且工作正常:

df.replace('?',np.NaN,inplace=True)
imp=SimpleImputer(missing_values=np.NaN)
idf=pd.DataFrame(imp.fit_transform(df))
idf.columns=df.columns
idf.index=df.index

idf['bare_nuclei'].isna().sum()

输出:

0
# No nan : Imputing successful

关于python - 将 Simple Imputer 与 Pandas 数据框一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57797952/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com