Ваши данные могут быть не такими, какие вы ожидаете - кажется, вы ожидаете, но не получаете, плаваете.
Простым решением для выяснения, где это происходит, было бы добавить try / except для цикла for:
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:
# report the error in some way that is helpful -- maybe print out i
result=stats.ttest_ind(list1,list2)
print result[1]