Use Python para seleccionar filas con un rango particular de valores en una columna

Sé que esto es simple, pero soy un nuevo usuario de Python, así que estoy teniendo un poco de problemas aquí. Estoy usando Python 3 por cierto.

Tengo varios archivos que se parecen a esto:

NOMBRE FECHA EDAD SEXO COLOR

<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>

(Pretenda que esto está delimitado por tabulaciones. Debo agregar que el archivo real tendrá aproximadamente 3,000 filas y 17-18 columnas)

Lo que quiero hacer es seleccionar todas las filas que tienen un valor en la columna de edad que es menor que 23.

En este ejemplo, la salida sería:

<code>Name Date Age Sex Color
Alex Apr  22.3 F  Green
Ann  Jun  15.7 F  Blue
</code>

Esto es lo que traté de hacer:

<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>

Ahora, idealmente, tengo 20-30 de estos archivos de entrada de "libreta de direcciones" y quería que este script los completara todos y agregue todas las entradas con una edad menor de 23 años al mismo archivo de salida ("college_age.txt"). Realmente no necesito mantener las otras líneas, pero no sabía qué más hacer con ellas.

Este script, cuando lo ejecuto, genera un error.

<code>AttributeError: 'list' object has no attribute 'split'
</code>

Luego cambio la tercera línea a:

<code>file_data=[line.split("\t") for line in f.readlines()]
</code>

Y ya no me da un error, sino que simplemente no hace nada. Simplemente comienza y luego comienza.

¿Alguna ayuda? :) Recuerda que soy tonto con Python.

Debería haber agregado que mis datos reales tienen decimales y no son enteros. He editado los datos de arriba para reflejar eso.

Respuestas a la pregunta(3)

Su respuesta a la pregunta