read_csv read functions example errors dtype data columns python csv pandas

python - functions - pandas read_csv ignore errors



Obtenga pandas.read_csv para leer los valores vacíos como una cadena vacía en lugar de nan (3)

Agregué un ticket para agregar una opción de algún tipo aquí:

https://github.com/pydata/pandas/issues/1450

Mientras tanto, result.fillna('''') debería hacer lo que quieras

EDITAR: en la versión de desarrollo (para ser 0.8.0 final) si especifica una lista vacía de na_values , las cadenas vacías permanecerán cadenas vacías en el resultado

Estoy usando la biblioteca de pandas para leer algunos datos CSV. En mis datos, ciertas columnas contienen cadenas. La cadena "nan" es un valor posible, ya que es una cadena vacía. Me las arreglé para que los pandas leyeran "nan" como una cadena, pero no logro encontrar la forma de que no lea un valor vacío como NaN. Aquí hay datos de muestra y resultados

One,Two,Three a,1,one b,2,two ,3,three d,4,nan e,5,five nan,6, g,7,seven >>> pandas.read_csv(''test.csv'', na_values={''One'': [], "Three": []}) One Two Three 0 a 1 one 1 b 2 two 2 NaN 3 three 3 d 4 nan 4 e 5 five 5 nan 6 NaN 6 g 7 seven

Se lee correctamente "nan" como la cadena "nan", pero aún lee las celdas vacías como NaN. Intenté pasar str en el argumento de converters a read_csv (con converters={''One'': str}) ), pero sigue siendo lee las celdas vacías como NaN.

Me doy cuenta de que puedo completar los valores después de leer, con fillna, pero ¿realmente no hay forma de decirle a los pandas que una celda vacía en una columna CSV particular debería leerse como una cadena vacía en lugar de NaN?


Todavía estaba confundido después de leer las otras respuestas y comentarios. Pero la respuesta ahora parece más simple, así que aquí tienes.

Desde Pandas versión 0.9 (desde 2012), puede leer su csv con celdas vacías interpretadas como cadenas vacías simplemente configurando keep_default_na=False :

pd.read_csv(''test.csv'', keep_default_na=False)

Este problema se explica más claramente en

Eso fue arreglado el 19 de agosto de 2012 para la versión 0.9 de Pandas


Usa el método fillna, pero úsalo dos veces ''nan'' = ''nan'', ''NaN'' = "". Esto mantendría las coma alineadas. Si el NAN no estaba allí, entonces las columnas no se alinearían. Recuerde: nan no es igual a NaN.