Maison > développement back-end > Tutoriel Python > Pourquoi la méthode `replace()` de mon Pandas ne fonctionne-t-elle pas pour de simples remplacements de chaînes ?

Pourquoi la méthode `replace()` de mon Pandas ne fonctionne-t-elle pas pour de simples remplacements de chaînes ?

Mary-Kate Olsen
Libérer: 2024-11-02 09:48:02
original
552 Les gens l'ont consulté

Why Isn't My Pandas `replace()` Method Working for Simple String Replacements?

La méthode Pandas replace() ne fonctionne pas ? Essayez cette solution simple

Lorsque vous essayez de remplacer des chaînes dans un Pandas DataFrame à l'aide de la méthode replace(), il est possible de rencontrer un problème déroutant où aucun remplacement ne se produit. Contrairement aux remplacements complexes, cette situation implique souvent des tentatives de remplacement simples.

Pour illustrer, examinons le cadre de données suivant :

d = {'color' : pd.Series(['white', 'blue', 'orange']),
   'second_color': pd.Series(['white', 'black', 'blue']),
   'value' : pd.Series([1., 2., 3.])}
df = pd.DataFrame(d)
Copier après la connexion

Lorsque nous essayons de remplacer toutes les occurrences de « blanc » par NaN, étonnamment, rien ne se passe :

df.replace('white', np.nan)
Copier après la connexion

La sortie reste inchangée :

      color second_color  value
0   white        white      1
1    blue        black      2
2  orange         blue      3
Copier après la connexion

Alors, quoi s'est mal passé ?

Il s'avère que la méthode replace() effectue des recherches de remplacement complet par défaut. Pour activer les remplacements partiels, nous devons définir le paramètre regex sur True :

df.replace('white', np.nan, regex=True)
Copier après la connexion

Alternativement, nous pouvons utiliser la méthode str.replace(), qui offre plus de contrôle sur le processus de remplacement :

df['color'].str.replace('white', np.nan)
Copier après la connexion

Astuce bonus : Si vous envisagez d'utiliser inplace=True pour effectuer le remplacement sur place, assurez-vous de comprendre son mises en garde.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal