Maison >développement back-end >Tutoriel Python >Comment remplacer des caractères dans une colonne de chaîne d'une trame de données Pandas sans correspondances exactes ?

Comment remplacer des caractères dans une colonne de chaîne d'une trame de données Pandas sans correspondances exactes ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-28 14:30:02507parcourir

How to Replace Characters in a String Column of a Pandas Dataframe without Exact Matches?

Réplication de texte dans une colonne de chaîne d'une trame de données Pandas

Dans les tâches de manipulation de données, le remplacement de caractères spécifiques dans une colonne de chaîne est souvent nécessaire. Considérons un dataframe avec une colonne contenant des valeurs de chaîne telles que "(2,30)", où nous souhaitons remplacer la virgule (",") par un tiret ("-").

Pour résoudre ce problème, vous peut avoir tenté d'utiliser la méthode de remplacement de Pandas avec inplace=True pour modifier directement la colonne. Cependant, si cette approche n'a pas fonctionné, cela vaut la peine d'évaluer votre code et de comprendre les limites du remplacement.

La documentation Pandas précise que le remplacement nécessite une correspondance exacte de la chaîne spécifiée pour effectuer la substitution. Dans votre cas, les valeurs de la colonne ne correspondent pas exactement à la chaîne que vous essayez de remplacer.

Au lieu de cela, nous pouvons exploiter la méthode str vectorisée pour exécuter cette transformation efficacement :

<code class="python">df['range'] = df['range'].str.replace(',','-')</code>

Cette approche utilise la méthode str pour traiter chaque chaîne de la colonne comme un objet chaîne, nous permettant d'effectuer diverses opérations de manipulation de chaînes. En chaînant la méthode replace, on peut spécifier le remplacement de la virgule par un tiret.

Pour illustrer, considérons un exemple :

<code class="python">df = pd.DataFrame({'range':['(2,30)', '(50,290)', '(400,1000)']})

df['range'] = df['range'].str.replace(',','-')

print(df)</code>

Sortie :

      range
0    (2-30)
1  (50-290)
2 (400-1000)

Comme vous pouvez le constater, les virgules dans la colonne d'origine ont été remplacées avec succès par des tirets.

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