无法将空单元转换为从csv导入浮动

时间:2017-09-27 10:55:22

标签: python

我导入测试数据并继续遇到问题' ValueError:无法将字符串转换为float:' 编辑:空白单元格始终位于列表的末尾,并且所有列表的长度都不相同。 我认为这样做的原因是我在我的一些列表中导入了空白单元格。任何人都可以帮助我摆脱它们或将它们设置为零吗? 我只是试图绘制数据,而我似乎无法解决此错误。

这是我的代码:

import csv
import numpy as np
from itertools import islice
with open('TestFile.csv') as csvfile:
    readCSV = csv.reader(csvfile, delimiter=',')
    Cs = []
    Rs = []
    Qs = []
    for row in islice(readCSV,3,None):
        R = row[0]
        C = row[1]
        q = row[2]
        Qs.append(q)
        Cs.append(C)
        Rs.append(R)
plot(Qs)

以及一些示例数据,保存为.csv:

Sample 1        Sample 2        Sample 3        Sample 4        Sample 5    
Load    Time    Load    Time    Load    Time    Load    Time    Load    Time
N   sec N   sec N   sec N   sec N   sec
0.007   2.3 0.524   2.3 0.344   2.3 0.914   2.3 1.086   2.3
0.052   2.32    0.577   2.32    0.397   2.32    0.973   2.32    1.161   2.32
0.112   2.34    0.637   2.34    0.457   2.34    1.041   2.34    1.235   2.34
0.172   2.36    0.689   2.36    0.517   2.36    1.101   2.36    1.31    2.36
0.232   2.38    0.749   2.38    0.577   2.38    1.168   2.38    1.385   2.38
0.292   2.4 0.816   2.4 0.637   2.4 1.235   2.4 1.46    2.4
0.352   2.42    0.884   2.42    0.704   2.42    1.303   2.42    1.535   2.42
2.44    0.959   2.44    0.779   2.44    1.37    2.44    1.61    2.44
2.46    1.033   2.46    0.854   2.46    1.445   2.46    1.685   2.46
2.48        2.48    0.929   2.48    1.52    2.48    1.752   2.48
        2.5 1.003   2.5 1.595   2.5 1.834   2.5

非常感谢任何建议。

感谢。

1 个答案:

答案 0 :(得分:2)

您可以在分配前测试单元格中的值,如果需要,可以将其替换为零:

R = row[0] if row[0] != '' else 0.0  # choose a test adapted to your values
C = row[1] if row[1] != '' else 0.0
q = row[2] if row[2] != '' else 0.0

您执行的测试必须适应您在文件中遇到的值的类型。