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 № 1El 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
convalue
.
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)