Extraiga columnas específicas del archivo csv para listar en Python

Lo que estoy tratando de hacer es trazar los valores de latitud y longitud de tormentas específicas en un mapa usando matplotlib, mapa base, python, etc. Mi problema es que estoy tratando de extraer la latitud, la longitud y el nombre de las tormentas en mapeo pero sigo recibiendo errores entre las líneas 41-44 donde bash extraer las columnas de la lista. ¿Podría alguien ayudarme a resolver esto? Gracias por adelantado.

Aquí es cómo se ve el archivo:

1957,AUDREY,HU, 21.6N, 93.3W 1957,AUDREY,HU,22.0N, 93.4W 1957,AUDREY,HU,22.6N, 93.5W 1957,AUDREY,HU,23.2N, 93.6W 

Quiero que la lista se vea como la siguiente:

 latitude = [21.6N,22.0N,23.4N] longitude = [93.3W, 93.5W,93.8W] name = ["Audrey","Audrey"] 

Esto es lo que tengo hasta ahora:

 data = np.loadtxt('louisianastormb.csv',dtype=np.str,delimiter=',',skiprows=1) '''print data''' data = np.loadtxt('louisianastormb.csv',dtype=np.str,delimiter=',',skiprows=0) f= open('louisianastormb.csv', 'rb') reader = csv.reader(f, delimiter=',') header = reader.next() zipped = zip(*reader) latitude = zipped[3] longitude = zipped[4] names = zipped[1] x, y = m(longitude, latitude) 

Aquí está el último mensaje de error / traceback que recibí:

Rastreo (llamadas recientes más última):
Archivo “/home/darealmzd/lstorms.py”, línea 42, en

header = reader.next ()
_csv.Error: el carácter de nueva línea se ve en un campo sin comillas. ¿Necesita abrir el archivo en modo de nueva línea universal?

Esto parece ser un problema con los finales de línea en su código. Si va a utilizar todos estos otros paquetes científicos, también puede usar Pandas para la parte de lectura de CSV, que es más robusta y más útil que solo el módulo csv :

 import pandas colnames = ['year', 'name', 'city', 'latitude', 'longitude'] data = pandas.read_csv('test.csv', names=colnames) 

Si quieres tus listas como en la pregunta, ahora puedes hacer:

 names = data.name.tolist() latitude = data.latitude.tolist() longitude = data.longitude.tolist() 

Una versión estándar-lib (no pandas)

Esto supone que la primera fila del csv son los encabezados.

 import csv # open the file in universal line ending mode with open('test.csv', 'rU') as infile: # read the file as a dictionary for each row ({header : value}) reader = csv.DictReader(infile) data = {} for row in reader: for header, value in row.items(): try: data[header].append(value) except KeyError: data[header] = [value] # extract the variables you want names = data['name'] latitude = data['latitude'] longitude = data['longitude']