/ La llamada / df.replace no realiza cambios en el marco de datos original [duplicado]: python, pandas, dataframe, replace

df.replace call no realiza cambios en el dataframe original [duplicado] - python, pandas, dataframe, replace

Con pd.DataFrame.replace, He estado tratando de averiguar por qué los valores que reemplacé vuelven a sus valores originales cuando reemplazo otro conjunto en otra columna. ¿Cómo se pueden hacer los reemplazos permanentes, a continuación?

titanic.replace({"Pclass" :
{3 : "Lower Class",
2 : "Middle Class",
1: "Upper Class"}})

Respuestas

0 para la respuesta № 1

El código titanic.replace(...) crea un nuevo DataFrame, y devuelve eso. Para que Python recuerde esto DataFrame más tarde, en lugar de simplemente deshacerte de él, debes asignarlo a algo, con df = titatic.replace(...). aquí df puede ser cualquier nombre, incluso titanic; Si usa el mismo nombre, se librará de la antiguo DataFrame y usa el nuevo a partir de entonces.


3 para la respuesta № 2

Leer el df.replace documentación:

DataFrame.replace(to_replace=None, value=None, inplace=False,
limit=None, regex=False, method="pad", axis=None)

Reemplazar los valores dados en to_replace con value.


Devoluciones: filled : NDFrame

Esta no es una operación in situ a menos que usted lo especifique.

titanic.replace({"Survived":(0:"False",1:"True")}, inplace=True)

o, asigne el valor de retorno de nuevo.

titanic = titanic.replace({"Survived":(0:"False",1:"True")})

No intentes asignar cuando inplace=True porque entonces, df.replace devoluciones None.


2 para la respuesta № 3

add inplace = True

titanic.replace({"Survived":(0:"False",1:"True")},inplace =True)

También para kaggle titanic data, recomendar. map

d={0:"False",1:"True"}

titanic.Survived=titanic.Survived.map(d)