使用 csv 文件时无法将字符串转换为浮点数错误

Could not convert string to float error while using csv files

我正在尝试将我的 csv 文件的两个列加载到 python 中的一个数组中。但是我得到:

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

我附上了已实现的代码片段和我试图存储在数组中的 csv 文件。

import csv


col1 = []
col2 = []
path = r'C:\Users\angel\OneDrive\Documents\CSV_FILES_NV_LAB11 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 文件中有哪些值?如果值无法转换为 floats,您将得到 ValueError。例如,如果您的 CSV 文件如下所示:

ColName,ColName2
abc,def
123,45.6
g,20

错误将在循环的第一次迭代中引发,因为 abc 无法转换为浮点数。但是,如果 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] 只取该行的第一个和第二个字符。