ValueError: could not convert string to float: '.' Python

ValueError: could not convert string to float: '.' Python

所以我试图确保我在 csv 文件中的所有值都转换为浮点数。 csv 文件中每个单元格中的值只是数字,例如“0.089”“23”。出于某种原因,当我尝试 运行 代码时出现以下错误,“ValueError: could not convert string to float: '.' “ 我真的不明白为什么程序没有正确读取 csv 文件中的数字。

def loadCsv(filename):
    with open('BreastCancerTumor.csv','r') as f:
        lines = f.readlines()[1:]
    dataset = list(lines)
    for i in range(len(dataset)):
        dataset[i] = [float(x) for x in dataset[i]]
    return dataset

您永远不会将行拆分为逗号分隔的字段。因此,您正在遍历行中的字符,而不是字段,并尝试将每个字符解析为浮点数。到达 . 字符时出现错误。

使用 csv 库读取文件,它会将每一行拆分为字段列表。

import csv

def loadCsv(filename):
    with open('BreastCancerTumor.csv','r') as f:
        f.readline() # skip header
        csvf = csv.reader(f):

        dataset = [[float(x) for x in row] for row in csvf]
        return dataset