У меня есть десять файлов CSV, созданных с использованием python. Каждый файл CSV имеет около 330K строк (строки), и каждая строка выглядит следующим образом:Слияние нескольких файлов csv по определенным критериям с использованием python
0.334,0.0232,0.00086,1.642e-05
[пустая строка]
0.334,0.0232,0.00086,1.742 е-05
[пустая строка]
...
(я не знаю, почему питон пишет в пустую строку после каждой строки).
Я пытаюсь объединить 10 файлов с именем Parameters1, Parameters2 .... Параметры 10, исключить пустую строку и написать, только если второй столбец содержит значение больше 0,1.
fout = open("C:\Anaconda3\Sr90NHPModelParameters\Parameters100.csv","a")
for num in range(1,11):
for line in open("C:\Anaconda3\Sr90NHPModelParameters\Parameters"+str(num)+".csv"):
if line[0]!="":
if line[1]>0.1:
fout.write(line)
else:
pass
else:
pass
fout.close()
Если я запускаю приведенный выше код, я получаю неупорядоченные типы: str()> float().
и если я вместо того, чтобы выполнить тот же самый код, изменяя
if(line[1])>0.1
в
if float(line[1])>0.1:
я ValueError: не удалось преобразовать строку плавать: ''
Я не уверен, почему это так. Я должен '.' , но он является частью числа, например, 0,334 или 1,642e-05.
Большое спасибо за помощь!
Второй * символ * линии - это период; вы не разбиваете его на поля. Если вы используете CSV, почему бы не использовать 'csv'? – jonrsharpe
@jonrsharpe, я все еще в фазе обучения для python. Не могли бы вы пояснить, как я могу разделить поля, а не символы? Спасибо за вашу помощь. – DPdl
Тогда google «Python CSV» и начните читать! Встроенный модуль, о котором я упоминал выше, стал бы разумной отправной точкой. – jonrsharpe