Pandas - remplacement des valeurs de colonne
Je sais qu'il y a un certain nombre de sujets sur cette question, mais aucune des méthodes qui ont fonctionné pour moi, donc je suis à l'affichage sur ma situation spécifique
J'ai un dataframe qui ressemble à ceci:
data = pd.DataFrame([[1,0],[0,1],[1,0],[0,1]], columns=["sex", "split"])
data['sex'].replace(0, 'Female')
data['sex'].replace(1, 'Male')
data
Ce que je veux faire est de remplacer tous les 0 dans le sexe de la colonne avec des "Femelles", et tous les 1 avec "Homme", mais les valeurs dans le dataframe ne semblent pas changer lorsque j'utilise le code ci-dessus
Suis-je utiliser replace() de façon incorrecte? Ou est-il une meilleure façon de faire conditionnelle de remplacement de valeurs?
source d'informationauteur Simon
Vous devez vous connecter pour publier un commentaire.
Oui, vous l'utilisez de manière incorrecte,
de la Série.replace()
n'est pas en place l'opération par défaut, il renvoie l'remplacé dataframe/série, vous devez l'affecter en retour à votre dataFrame/Série pour que les effets se produisent. Ou si vous avez besoin de le faire en place, vous devez spécifier leinplace
argument mot-clé commeTrue
Exemple -Aussi, vous pouvez combiner le ci-dessus en un seul
replace
appel de fonction en utilisantlist
pour les deuxto_replace
argument ainsi quevalue
argument , Exemple -Exemple/Demo -
Vous pouvez également utiliser un dictionnaire, par Exemple -
Vous pouvez également essayer d'utiliser
apply
avecget
méthode dedictionary
semble être un peu plus rapide quereplace
:Tests avec
timeit
:Résultat:
À l'aide de
apply
:Résultat:
Remarque:
apply
avec dictionnaire doit être utilisé que si toutes les valeurs possibles des colonnes dans le dataframe sont définis dans le dictionnaire d'autre, il sera vide pour ceux qui ne sont pas définis dans le dictionnaire.