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.