stu*_*001 3 python csv floating-point literals
我有一个包含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()
Run Code Online (Sandbox Code Playgroud)
当我运行上面的内容时,我收到以下错误:
错误:float()的文字无效:0.000001
值0.0000001是我的第三列数据集中的第一个值,我想代码不能读取超出该集合但我不确定原因.我是python的新手,并不真正理解为什么我收到此错误或如何解决它.我已经尝试了如何输入float()的其他修改,但没有成功.有谁知道我怎么能解决这个问题?
从你发布的内容来看,目前尚不清楚你试图传递的字符串是否有些巧妙的错误float()
(因为它看起来非常合理).尝试添加调试打印语句:
print(repr(items[2]))
p_value = float(items[2])
Run Code Online (Sandbox Code Playgroud)
然后,您可以确切地确定传递给什么float()
.调用repr()
将使通常不可见的字符可见.将结果添加到您的问题中,我们将能够进一步发表评论.