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
Mary-Kate Olsenoriginal
2024-11-02 09:48:02532parcourir

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)

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

df.replace('white', np.nan)

La sortie reste inchangée :

      color second_color  value
0   white        white      1
1    blue        black      2
2  orange         blue      3

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)

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)

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!

Déclaration:
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