我正试图将csv文件的两个colun加载到python中的一个数组中。然而,我得到了:
ValueError: could not convert string to float: ''.
我已经附上了实现的代码片段和我试图存储在数组中的csv文件。
import csv
col1 = []
col2 = []
path = r'C:UsersangelOneDriveDocumentsCSV_FILES_NV_LAB1111 x 30.csv'
with open(path, "r") as f_in:
reader = csv.reader(f_in)
next(reader) # skip headers
for line in reader:
col1.append(float(line[0]))
col2.append(float(line[1]))
print(col1)
print(col2)
CSV文件中有哪些值?如果无法将值转换为float
s,则将获得ValueError
。例如,如果您的CSV文件如下所示:
ColName,ColName2
abc,def
123,45.6
g,20
由于CCD_ 3无法转换为浮点值,因此在循环的第一次迭代中将引发错误。但是,如果CSV文件中的所有值都是数字:
ColName, ColName2
1,2
123,45.6
100,20
则不会引发错误。
如果CSV文件中有一些数值和一些非数值,可以通过在循环中包含try...except
块来省略包含非数值的行:
for line in reader:
try:
float_1, float_2 = float(line[0]), float(line[1])
# If either of the above conversions failed, the next two lines will not be reached
col1.append(float_1)
col2.append(float_2)
except ValueError:
continue # Move on to next line
也许您忘记添加.split(',')
了?现在,line[0]
和line[1]
只是取行的第一个和第二个字符。