Я пытаюсь извлечь аномальные точки данных из большого файла CSV (~ 1e6 строк), в котором большинство точек данных имеют постоянное значение.Я написал код ниже, чтобы обнаружить значения ниже, чем константа.
constant = 1
try:
fp = open('disk2.csv')
for line in fp:
ch4 = float(line.split(",")[4]) #data from channel four is in the fifth column
if ch4 < constant:
print line.split(",")[0] #print first column
except:
ch4 = 'Not found'
finally:
fp.close()
print(ch4,type(ch4))
печать возвращает следующее без дополнительных ошибок:
('Not found', <type 'str'>)
, если я изменю код на:
constant = 1
try:
fp = open('disk2.csv')
for line in fp:
ch4 = line.split(",")[4] #data from channel four is in the fifth column
if ch4 < constant:
print line.split(",")[0] #print first column
except:
ch4 = 'Not found'
finally:
fp.close()
print(ch4,type(ch4))
Возвращает
(' 2.41650E+01', <type 'str'>)
Итак, файл csv читается как строка, и строку можно разделить на список с помощью команды split, но я не могу превратить элементы в списке в плавающие числа?
Ошибка была не в коде, а в моем файле CSV, который не содержал достаточно элементов в первой строке