ValueError:无法将字符串转换为float:id
发布于 2021-01-29 15:06:06
我正在运行以下python脚本:
#!/usr/bin/python
import os,sys
from scipy import stats
import numpy as np
f=open('data2.txt', 'r').readlines()
N=len(f)-1
for i in range(0,N):
w=f[i].split()
l1=w[1:8]
l2=w[8:15]
list1=[float(x) for x in l1]
list2=[float(x) for x in l2]
result=stats.ttest_ind(list1,list2)
print result[1]
但是我得到了类似的错误:
ValueError: could not convert string to float: id
我对此感到困惑。当我在交互式部分中仅尝试一行时,而不是使用脚本进行for循环时:
>>> from scipy import stats
>>> import numpy as np
>>> f=open('data2.txt','r').readlines()
>>> w=f[1].split()
>>> l1=w[1:8]
>>> l2=w[8:15]
>>> list1=[float(x) for x in l1]
>>> list1
[5.3209183842, 4.6422726719, 4.3788135547, 5.9299061614, 5.9331108706, 5.0287087832, 4.57...]
它运作良好。
有人可以解释一下吗?谢谢。
关注者
0
被浏览
94
1 个回答
-
显然,您的某些行没有有效的float数据,特别是某些行的文本
id
无法转换为float。当您在交互式提示中尝试它时,您仅尝试第一行,因此最好的方法是在出现此错误的地方打印行,您将知道错误的行,例如
#!/usr/bin/python import os,sys from scipy import stats import numpy as np f=open('data2.txt', 'r').readlines() N=len(f)-1 for i in range(0,N): w=f[i].split() l1=w[1:8] l2=w[8:15] try: list1=[float(x) for x in l1] list2=[float(x) for x in l2] except ValueError,e: print "error",e,"on line",i result=stats.ttest_ind(list1,list2) print result[1]