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,它也会给我这个错误。它仍然给我错误。上面是要转换的函数。
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()
。