Haz que pandas.read_csv lea los valores vacíos como una cadena vacía en lugar de nan

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 hacer que los pandas leyeran “nan” como una cadena, pero no puedo descubrir cómo hacer que no lea un valor vacío como NaN. Aquí hay datos de muestra y salida

 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 

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

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

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

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

Mientras tanto, result.fillna('') debe hacer lo que quieras

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

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 la versión 0.9 de Pandas (a partir de 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 tema se explica más claramente en

  • Manejo más consistente de los valores de na en read_csv · Número de problema 1657 · pandas-dev / pandas

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

  • ERROR: valores_na # 1657 más coherentes · pandas-dev / pandas @ d9abf68