Используйте Python для выбора строк с определенным диапазоном значений в одном столбце
Я знаю, что это просто, но я новый пользователь Python, поэтому у меня возникли некоторые проблемы. Кстати, я использую Python 3.
У меня есть несколько файлов, которые выглядят примерно так:
ИМЯ ДАТА ВОЗРАСТ СЕКС ЦВЕТ
<code>Name Date Age Sex Color Ray May 25.1 M Gray Alex Apr 22.3 F Green Ann Jun 15.7 F Blue </code>
(Притворимся, что это разделитель табуляции. Я должен добавить, что реальный файл будет иметь около 3000 строк и 17-18 столбцов)
Что я хочу сделать, это выбрать все строки, которые имеют значение в столбце возраста, который меньше 23.
В этом примере вывод будет:
<code>Name Date Age Sex Color Alex Apr 22.3 F Green Ann Jun 15.7 F Blue </code>
Вот что я пытался сделать:
<code>f = open("addressbook1.txt",'r') line = f.readlines() file_data =[line.split("\t")] f.close() for name, date, age, sex, color in file_data: if age in line_data < 23: g = open("college_age.txt",'a') g.write(line) else: h = open("adult_age.txt",'a') h.write(line) </code>
Теперь, в идеале, у меня есть 20-30 из этих "адресных книг" inputfiles и я хотели, чтобы этот сценарий прошел через них все и добавил все записи в возрасте до 23 лет в один и тот же выходной файл (& quot; college_age.txt & quot;). Мне действительно не нужно сохранять другие строки, но я не знал, что еще с ними делать.
Этот скрипт, когда я запускаю его, выдает ошибку.
<code>AttributeError: 'list' object has no attribute 'split' </code>
Затем я изменяю третью строку на:
<code>file_data=[line.split("\t") for line in f.readlines()] </code>
И это больше не дает мне ошибки, а просто ничего не делает. Это только начинается, а затем начинается.
Любая помощь? :) Помните, что я туп с Python.
Я должен был добавить, что мои фактические данные имеют десятичные дроби и не являются целыми числами. Я отредактировал данные выше, чтобы отразить это.