Tengo un marco de datos de Pandas 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 de NaN con una cadena vacía para que se vea así:
1 2 3
0 a "" read
1 b l unread
2 c "" read

np.nanviene? No puedo usarloimport numpy as np.pd.np.nansi no quieres hacerloimport numpytambién.pd.DataFrame.from_dict(eval(_string_))... inplace=Trueopción.o solo
Esto llenará de na (por ejemplo, NaN)
''.Si desea llenar una sola columna, puede usar:
Uno puede usar en
df['column1']lugar dedf.column1.fuente
df[['column1','column2']] = df[['column1','column2']].fillna('')Si está leyendo el marco de datos de un archivo (por ejemplo, CSV o Excel), use:
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 tiene el marco de datos
df = df.replace(np.nan, '', regex=True)df = df.fillna('')fuente
xl.parse('sheet_name', na_filter=False)Utilice un formateador, si solo desea formatearlo para que se vea bien cuando se imprima . Solo use el
df.to_string(... formatterspara definir el formato de cadena personalizado, sin modificar innecesariamente su DataFrame o desperdiciar memoria:Llegar:
fuente
print df.fillna('')por sí mismo (sin hacerdf = df.fillna('')) tampoco modifica el original. ¿Hay una velocidad u otra ventaja de usarto_string?df.fillna('')lo es!Prueba esto,
añadir
inplace=Truefuente
usar
keep_default_na=Falsedebería ayudarte a:fuente
Si está convirtiendo trama de datos a JSON,
NaNdará error para mejor solución es el uso en este caso es reemplazarNaNconNone.Aquí es cómo:
fuente
Intenté con una columna de valores de cadena con nan.
Para eliminar el nan y llenar la cadena vacía:
df.columnname.replace(np.nan,'',regex = True)Para eliminar el nan y llenar algunos valores:
df.columnname.replace(np.nan,'value',regex = True)Intenté df.iloc también. pero necesita el índice de la columna. así que debes mirar hacia la mesa nuevamente. simplemente el método anterior redujo un paso.
fuente