gpt4 book ai didi

python - 用中位数对缺失值进行插补

转载 作者:太空宇宙 更新时间:2023-11-03 21:41:51 26 4
gpt4 key购买 nike

我想用中位数来估算名为 Bare Nuclei 的数据帧的列,但出现了此错误('必须是 str,而不是 int','发生在索引 Bare Nuclei')下面的代码表示列data['Bare Nuclei]的唯一值

data['Bare Nuclei'].unique()
array(['1', '10', '2', '4', '3', '9', '7', '?', '5', '8', '6'],
dtype=object)

然后,我尝试将 ? 替换为 nan,然后将 nan 替换为中位数,但出现上述错误

data['Bare Nuclei'] = data['Bare Nuclei'].replace('?',np.nan)
#data['Bare Nuclei'].fillna()
data.apply(lambda x: x.fillna(x.mean()),axis=0)

要检查数据,请访问此链接 https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/

最佳答案

您得到的错误是因为'Bare Nuclei' 列中存储的值存储为字符串,但mean() 函数需要数字。您可以在调用 .unique() 的结果中看到它们是字符串。

替换'?'字符后,您可以使用.astype(float)将系列转换为数字:

data['Bare Nuclei'] = data['Bare Nuclei'].replace('?',np.nan)
data['Bare Nuclei'] = data['Bare Nuclei'].astype(float).apply(lambda x: x.fillna(x.mean()))

关于python - 用中位数对缺失值进行插补,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52797461/

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