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,它也会给我这个错误。 它仍然给我错误。 以上是转换功能。
答案 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()
。