我正在使用numpy从.csv
文件创建一个数组。这个文件的第一行是由文本组成的,所以我在使用浮点时从我正在使用的文章中复制了这个命令(我已将整个代码保留在上下文中。命令是最后一行中的[1:]
)
import numpy as np
import csv
with open("atest.csv", 'r') as f:
wines = list(csv.reader(f, delimiter=";"))
print(wines[:3])
wines_array = np.array(wines[1:], dtype=np.float)
但是,我仍然收到此错误消息:
wines_array = np.array(wines[1:], dtype=np.float)
ValueError: could not convert string to float: 'fixed acidity'
这表明它没有遗漏顶行。有没有人有任何帮助?
编辑
这是我的.csv
文件:
"fixed acidity";"volatile acidity";"citric acid";"residual sugar";"chlorides";"free sulfur dioxide";"total sulfur dioxide";"density";"pH";"sulphates";"alcohol";"quality"
7.4;0.7;0;1.9;0.076;11;34;0.9978;3.51;0.56;9.4;5
7.8;0.88;0;2.6;0.098;25;67;0.9968;3.2;0.68;9.8;5
第一行是我文件中的所有行。
事实证明,python没有正确解析文件,所以我将库切换到pandas
并稍加修改,并在评论中使用用户COLDSPEED建议的代码。该错误似乎对我个人而言。
这是我使用的代码行:import pandas as pd; v = pd.read_csv('atestred.csv', error_bad_lines=False).values