ValueError:无法将字符串转换为浮点数:“怀孕”

时间:2020-03-31 23:21:09

标签: python-3.x data-science naivebayes valueerror

def loadCsv(filename):
    lines = csv.reader(open('diabetes.csv'))
    dataset = list(lines)
    for i in range(len(dataset)):
        dataset[i] = [float(x) for x in dataset[i]
    return dataset

你好,我正在尝试实现Naive-Bayes,但是即使我已手动将每列的类型更改为float,它也会给我这个错误。 它仍然给我错误。 以上是转换功能。

1 个答案:

答案 0 :(得分:2)

ValueError是因为代码试图将CSV标题行中的项目(即字符串)强制转换(转换)为浮点型。您可以跳过CSV文件的第一行,例如:

for i in range(1, len(dataset)): # specifying 1 here will skip the first row
    dataset[i] = [float(x) for x in dataset[i]

注意:这会将dataset中的第一项保留为标题(str)。

我个人将使用pandas,它具有一个read_csv()方法,该方法会将数据直接加载到dataframe中。

例如:

import pandas as pd
dataset = pd.read_csv('diabetes.csv')

这将为您提供dataframe,而不是列表列表。如果您确实想要一个列表列表,则可以使用dataset.values.tolist()