Pandas Reemplace NaN con una cadena en blanco/vacía

Resuelto user1452759 asked hace 9 años • 8 respuestas

Tengo un Pandas Dataframe como se muestra a continuación:

    1    2       3
 0  a  NaN    read
 1  b    l  unread
 2  c  NaN    read

Quiero eliminar los valores NaN con una cadena vacía para que luzca así:

    1    2       3
 0  a   ""    read
 1  b    l  unread
 2  c   ""    read
user1452759 avatar Nov 10 '14 13:11 user1452759
Aceptado
df = df.fillna('')

Esto llenará los na (por ejemplo, NaN) con ''.

inplaceEs posible, pero debe evitarse, ya que de todos modos hace una copia interna y quedará obsoleta :

df.fillna('', inplace=True)

Para llenar solo una columna:

df.column1 = df.column1.fillna('')

Se puede utilizar df['column1']en lugar de df.column1.

fantabolous avatar Feb 08 '2015 05:02 fantabolous
import numpy as np
df1 = df.replace(np.nan, '', regex=True)

Esto podría ayudar. Reemplazará todos los NaN con una cadena vacía.

nEO avatar Nov 10 '2014 06:11 nEO

Si está leyendo el marco de datos de un archivo (por ejemplo, CSV o Excel), utilice:

df.read_csv(path , na_filter=False)
df.read_excel(path , na_filter=False)

Esto considerará automáticamente los campos vacíos como cadenas vacías.''


Si ya tienes el marco de datos

df = df.replace(np.nan, '', regex=True)
df = df.fillna('')
Natesh bhat avatar Jul 19 '2017 15:07 Natesh bhat