ValueError:无法将字符串转换为float:'Pregnncies'

问题描述 投票:-3回答:1
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,它也会给我这个错误。它仍然给我错误。上面是要转换的函数。

python-3.x data-science naivebayes valueerror
1个回答
1
投票

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()

© www.soinside.com 2019 - 2024. All rights reserved.