【发布时间】:2021-08-05 16:37:34
【问题描述】:
在下面的代码中,我尝试替换均值而不是缺失值,但我无法获得尝试的结果,因为此数据包含特殊字符“?”。当数据中没有问号时,此代码有效data.fillna(data.mean())。当我尝试估算方法时,出现以下错误:
ValueError:不能对非数字数据使用均值策略: 无法将字符串转换为浮点数:
此数据还包括缺少值的字符串列,如何修复字符串列(例如列 rbc)中的缺失值?
这是我的数据:https://easyupload.io/te2mbc
path = ("C:\\Users\\bbb\\Desktop\\ccc\\group5data.txt")
names = ["age","bp","sg","al","su","rbc","pc","pcc","ba",
"bgr","bu","sc","sod","pot","hemo","pcv","wc",
"rc","htn","dm","cad","appet","pe","ane","class"]
data = pd.read_csv(path, names=names)```
【问题讨论】:
-
你到底想做什么?你想换吗?与该列的平均值?还是整个数据框的平均值?另外,您希望文本在 rbc 中而不是 Nan 中是什么?
-
数据中有很多行带有不需要的 '\t' 字符(第 38 41 65 66 67 77 89 134 139 163 186 189 195 215 231 行)。您有 2 行以逗号结尾(第 70 73 行),因此 Pandas 删除它们(预计 25 个字段,看到 26 个)。我认为你真的需要在使用 Pandas 之前清理数据
-
@JonathanLeon 我正在尝试修复尽可能多的数据。是的,我想更换?使用该列的平均值,我想删除带有字符串 NaN 的行。