Agrupar datos de un archivo CSV por valor de campo

Tengo un archivo csv que tiene un valor duplicado en la primera columna. Quiero recostackr todo el valor de la segunda columna en una lista para un valor de la primera columna

column1 column2 a 54.2 s 78.5 k 89.62 a 77.2 a 65.56 

Quiero conseguir como

 print a # [54.2,77.2,65.56] print s # [78.5] print k # [89.62] 

Parece bastante sencillo usar el lector CSV de Python.

data.csv

 a,54.2 s,78.5 k,89.62 a,77.2 a,65.56 

script.py

 import csv result = {} with open('data.csv', 'rb') as csvfile: csvreader = csv.reader(csvfile, delimiter=',', quotechar='"') for row in csvreader: if row[0] in result: result[row[0]].append(row[1]) else: result[row[0]] = [row[1]] print result 

salida

 { 'a': ['54.2', '77.2', '65.56'], 's': ['78.5'], 'k': ['89.62'] } 

Como @Pete se ha ido, puedes embellecerlo usando defaultdict :

script.py

 import csv from collections import defaultdict result = defaultdict(list) # each entry of the dict is, by default, an empty list with open('data.csv', 'rb') as csvfile: csvreader = csv.reader(csvfile, delimiter=',', quotechar='"') for row in csvreader: result[row[0]].append(row[1]) print result