¿Cuál es la mejor manera de tomar un archivo de datos que contiene una fila de encabezado y leer esta fila en una tupla con nombre para que se pueda acceder a las filas de datos por el nombre del encabezado?¿Cuál es la forma pitónica de leer los datos de archivo CSV como filas de namedtuples?
estaba intentando algo como esto:
import csv
from collections import namedtuple
with open('data_file.txt', mode="r") as infile:
reader = csv.reader(infile)
Data = namedtuple("Data", ", ".join(i for i in reader[0]))
next(reader)
for row in reader:
data = Data(*row)
El lector de objeto no es subscriptable, por lo que el código anterior arroja un TypeError
. ¿Cuál es la forma pitónica de leer un encabezado de archivo en una ruta de acceso nombrada?
drbunsen: Después de hacer esto, puede cambiar el procesamiento de bucle : 'para datos en el mapa (Data._make, reader):'. – martineau
@spinup: Cambié tu edición un poco. – martineau
¿Qué sucede si los datos de csv no tienen un encabezado? ¿Hay alguna manera de asignar un nombre a una columna? (Si los datos CSV carece de un encabezado con nombre, y desea asignar nombres de columna, entonces me parece que mi única opción es leerlo como una secuencia de diccionarios). –