2010-09-21 8 views
5

Tengo un archivo csv que se ve algo como esto (archivo real tiene muchas más columnas y filas):Usando genfromtxt para importar datos CSV con valores perdidos en numpy

1,2,3,4,5 
6,7,8,9,10 
11,12,13,14,15 
16 

Diga el nombre del archivo es info.csv Si trato de importar esta usando

data = numpy.genfromtxt('info.csv', delimiter = ',') 

entonces me sale el siguiente error:

ValueError: Some errors were detected ! Line #4 (got 1 columns instead of 5) 

Si uso,

data = numpy.genfromtxt('info.csv', delimiter = ',', skip_footer = 1) 

ambas líneas con datos 16 y con datos 11, 12, 13, 14, 15 se omiten. No entiendo por qué se salta la línea con 11, 12, 13, 14, 15. Agradecería cualquier ayuda sobre cómo puedo usar apropiadamente el genfromtxt para importar las primeras tres líneas en el archivo anterior.

Gracias

Respuesta

8

si se puede pasar por alto el 16 al final del archivo intente utilizar el

invalid_raise (bool, opcional) parámetro si establece en False no tiene en cuenta todas las líneas incompletas sin lanzar una excepción

ver aquí (su último parámetro antes de los ejemplos) http://docs.scipy.org/doc/numpy/reference/generated/numpy.genfromtxt.html

+0

Gracias! Esto funciona bien para mi. Pero puede usted o alguien explicar por qué skip_footer no está funcionando. O bien, ¿cómo puedo obtener la fila con 16 en ella? Aceptaré la respuesta más adelante, porque si lo hago ahora, esas preguntas quedarán sin respuesta. Gracias de nuevo. – Curious2learn

+2

omite 2 filas, porque genformtxt lee las filas válidas en una matriz y luego se salta como mamy como le dijiste, pero la línea con '16' nunca se lee en la matriz –

+0

puedes probar los 'valores_llenado' o 'valores_desperdidos' parámetro para completar los 4 valores faltantes en la línea con '16', por ejemplo, en -1 o 0, dependiendo de lo que haga con su matriz después de leerlo desde el disco –

Cuestiones relacionadas