Convertir la columna CSV a la lista

Digamos que tengo un archivo CSV. Contiene:

a,b,c 1,2,3 4,5,6 7,8,9 

¿Cómo puedo convertir la columna etiquetada ‘a’ en una lista, sin tener que codificarla en una fila?

Originalmente, estaba haciendo una línea de lectura para la primera línea a,b,c luego codificaba una fila para cada variable. Pero luego pensé: ¿qué pasaría si quisiera hacerlo con la posibilidad de que el archivo CSV no se arregle de la misma manera?

 b,a,c 2,1,3 5,4,6 8,7,9 

¿Cuál es la mejor manera de hacer esto?

csv.DictReader convierte cada fila de su archivo CSV en un diccionario con los encabezados de columna como claves. Para su caso (suponiendo que los dos ejemplos en su pregunta se abc.csv y bac.csv respectivamente), podría usarlo así:

 from csv import DictReader with open("abc.csv") as f: a1 = [row["a"] for row in DictReader(f)] with open("bac.csv") as f: a2 = [row["a"] for row in DictReader(f)] # a1 == a2 == ['1', '4', '7'] 

Puedes hacerlo usando la librería pandas :

 import pandas data = pandas.read_csv("test.csv", header=0) col_a = list(data.a) col_b = list(data.b) col_c = list(data.c) 

Los valores en col_a , col_b y col_c son los siguientes:

 [1, 4, 7] [2, 5, 8] [3, 6, 9] 

Puedes usar collections.defaultdict :

 import collections my_dict = collections.defaultdict(list) with open('your_file') as f: header = next(f).strip().split(',') for x in f: x = x.strip().split(',') my_dict[header[0]].append(x[0]) my_dict[header[1]].append(x[1]) my_dict[header[2]].append(x[2])