我有一个包含 3 列数据的 .csv 文件。我需要创建一个新的输出文件,其中包含原始文件第一列和第三列中的一组特定数据。第三列包含十进制值,我相信在这种情况下我已经使用了 python 的 float() 功能。我尝试过以下代码:
in_file = open("filename.csv", "r")
out_file = open("output.csv", "w")
while True:
line = in_file.readline()
if (line == ''):
break
line = line.strip()
items = line.split(',')
gi_name = items[0]
if (gi_name.startswith("_"))
continue
p_value = float(items[2])
if (p_value > 0.05):
continue
out_file.write(','.join([gene_name, str(p_value)]))
in_file.close()
out_file.close()
当我运行上述命令时,我收到以下错误:
错误:float() 的文字无效:0.000001
值 0.0000001 是我的数据集中第三列的第一个值,我猜代码无法读取超出该集的值,但我不确定为什么。我是 python 新手,不太明白为什么会出现此错误或如何修复它。我尝试了其他修改如何输入 float(),但没有成功。有谁知道我该如何解决这个问题?
从您发布的内容来看,尚不清楚您尝试传递给的字符串是否存在细微的错误float()
(因为它looks完全合理)。尝试添加调试打印语句:
print(repr(items[2]))
p_value = float(items[2])
然后你可以确定exactly正在传递给什么float()
。致电给repr()
甚至可以使通常不可见的字符变得可见。将结果添加到您的问题中,我们将能够进一步发表评论。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)