Maison >développement back-end >Tutoriel Python >Comment remplacer une virgule dans une colonne de chaîne d'un DataFrame Pandas ?

Comment remplacer une virgule dans une colonne de chaîne d'un DataFrame Pandas ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-30 16:37:26526parcourir

How to Replace a Comma in a String Column of a Pandas DataFrame?

Comment remplacer du texte dans une colonne de chaîne d'une trame de données Pandas

Dans Pandas, vous pouvez rencontrer des situations où vous devez modifier le contenu d'une colonne de texte, comme le remplacement d'un certain caractère ou d'une certaine chaîne. Ceci peut être réalisé en utilisant la puissante méthode de remplacement.

Vous avez mentionné avoir une colonne contenant des valeurs entre parenthèses, avec une virgule séparant deux nombres. Votre objectif est de remplacer la virgule par un tiret. Cependant, votre approche actuelle utilisant org_info_exc['range'].replace(',', '-', inplace=True) ne fonctionne pas.

Le problème réside dans la syntaxe de votre code. La méthode replace nécessite que vous spécifiiez la chaîne exacte ou l’expression régulière à remplacer. Dans votre cas, la virgule ne correspond pas exactement à la valeur entière.

Pour remplacer correctement la virgule, vous devez utiliser la méthode suivante :

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

Ici, nous utilisons le méthode str vectorisée, qui nous permet d'appliquer une transformation de chaîne à chaque élément de la colonne. La fonction de remplacement prend deux paramètres : la chaîne d'origine à remplacer et la nouvelle chaîne par laquelle la remplacer.

Ce code utilise l'expression régulière ',' pour faire correspondre le caractère virgule, quelle que soit sa position dans la chaîne. .

EDIT :

Analyse de votre tentative originale :

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

La description de cette approche dans la documentation Pandas indique : "str : string correspondant exactement à to_replace sera remplacé par value." Étant donné que les chaînes de votre colonne ne correspondent pas exactement au caractère virgule, le remplacement n'a pas lieu.

À l'inverse, si nous fournissons une correspondance exacte pour le caractère virgule, comme indiqué ci-dessous, le remplacement aura lieu :

<code class="python">df = pd.DataFrame({'range':['(2,30)',',']})
df['range'].replace(',','-', inplace=True)

df['range']

0    (2,30)
1         -
Name: range, dtype: object</code>

Dans cet exemple modifié, la deuxième ligne contient une correspondance exacte pour la virgule et le remplacement a lieu.

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