Fonction Pandas Series.str.replace()

Pandas 常用函数Fonctions courantes de Pandas


Series.str.replace()C'est une fonction de Pandas utilisée pour remplacer un contenu spécifié dans des chaînes de caractères.

Lors du traitement des données, nous devons souvent effectuer des opérations de remplacement de texte, telles que corriger du texte erroné, normaliser les formats de données, supprimer des caractères indésirables, etc.replace()La fonction peut remplacer de manière flexible un contenu spécifié dans des chaînes de caractères et prend en charge la correspondance par expression régulière.

Signification du mot:replaceCela signifie « replace », c'est-à-dire remplacer l'ancien contenu par le nouveau contenu.


Syntaxe de base et paramètres

str.replace()C'est la méthode d'accès aux chaînes de caractères de Series, vous devez donc d'abord disposer d'une Series contenant des chaînes, puis utiliser le.strl'accesseur pour l'appeler.

Format de syntaxe

Series.str.replace(pat, repl, regex=False)

Description du paramètre

Paramètre Type Requis Description Valeur par défaut
pat str ou regex Requis Le motif à remplacer peut être une chaîne simple ou une expression régulière (lorsque regex=True). -
repl str ou callable Requis Le contenu de remplacement peut être une chaîne ou une fonction appelable (pour un remplacement avancé). -
regex bool Optional Indique si le paramètre pat doit être traité comme une expression régulière. Valeur par défaut : False. False

Description de la fonction

  • Valeur de retour: Retourne une nouvelle Series après remplacement.
  • Effet: Remplace le contenu correspondant dans chaque élément de type chaîne de la Series par un nouveau contenu.
  • Remarque: Par défaut, une correspondance de chaîne simple est utilisée. Si une correspondance par expression régulière est nécessaire, vous devez définirregex=True。

Exemples

Passons en revue une série d'exemples, du simple au complexe, pour maîtriser à fondstr.replace()son utilisation.

Exemple 1 : Utilisation de base - Remplacement de chaîne simple

Exemple

import pandas as pd

# Créer une Series contenant du texte
s = pd.Series(['apple', 'banana', 'apricot', 'pineapple'])

# Remplacer 'ap' par 'XX'
result = s.str.replace('ap', 'XX')

print("Série d'origine :")
print(s)
print("nRésultat après remplacement :")
print(result)

Résultat de sortie :

原始 Series:
0        apple
1       banana
2       apricot
3    pineapple
dtype: object

替换后的结果:
0       XXle
1       banana
2       XXricot
3    XXneXXple

Explication du code :

  1. s.str.replace('ap', 'XX')Remplace toutes les occurrences de 'ap' par 'XX'.
  2. Par défaut, seule la première correspondance est remplacée (si elle apparaît plusieurs fois dans la chaîne, seule la première est remplacée).
  3. Vous pouvez remplacer toutes les correspondances en ajoutant un indicateur d'expression régulière.

Exemple 2 : Utilisation d'expressions régulières pour remplacer toutes les correspondances

Lorsque vous devez remplacer toutes les correspondances, vous pouvez utiliser des expressions régulières.

Exemple

import pandas as pd

# Créer une Series contenant du texte
s = pd.Series(['apple', 'banana', 'apricot', 'pineapple'])

# Utilisez une expression régulière pour remplacer tous les 'ap' par 'XX'
result = s.str.replace('ap', 'XX', regex=True)

print("Série d'origine :")
print(s)
print("nRésultat après avoir remplacé tous les 'ap' :")
print(result)

Résultat de sortie :

原始 Series:
0        apple
1       banana
2       apricot
3    pineapple
dtype: object

替换所有 'ap' 后的结果:
0       XXle
1       banana
2       XXricot
3    XXneXXple

Explication du code :

  • Setregex=Trueà True, puis utilisez des expressions régulières pour la correspondance.
  • Dans une expression régulière,'ap'correspond à toutes les occurrences de 'ap' dans la chaîne.
  • 'pineapple' contient deux occurrences de 'ap', et les deux sont remplacées par 'XX'.

Exemple 3 : Remplacement des nombres et des symboles

replace()Il peut être utilisé pour nettoyer des données, par exemple en supprimant des nombres ou des symboles spéciaux.

Exemple

import pandas as pd

# Créer une Series contenant du contenu mixte
s = pd.Series(['téléphone : 123-456-7890', 'prix : $99.99', 'date : 2024-01-01'])

# Supprimer tous les nombres
result_digits = s.str.replace(r'd', '', regex=True)

# Supprimer tous les caractères non alphanumériques (conserver les espaces)
result_special = s.str.replace(r'[^a-zA-Z0-9s]', '', regex=True)

print("Série d'origine :")
print(s)
print("nAprès avoir supprimé tous les nombres :")
print(result_digits)
print("nAprès avoir supprimé tous les caractères spéciaux :")
print(result_special)

Résultat de sortie :

原始 Series:
0    phone: 123-456-7890
1       price: $99.99
2       date: 2024-01-01
dtype: object

移除所有数字后:
phone: ---
price: $.$
date: ------

移除所有特殊字符后:
phone 1234567890
price 9999
date 20240101

Explication du code :

  • r'd'est une expression régulière qui correspond à n'importe quel chiffre.
  • r'[^a-zA-Z0-9s]'correspond à tous les caractères qui ne sont ni alphanumériques ni des espaces.
  • C'est une opération très courante dans le nettoyage des données.

Exemple 4 : Utilisation d'une fonction de rappel pour le remplacement

replLe paramètre peut être une fonction pour une logique de remplacement plus complexe.

Exemple

import pandas as pd

# Créer une Series contenant du texte
s = pd.Series(['hello', 'world', 'example', 'python'])

# Utiliser une fonction de rappel pour convertir la chaîne correspondante en majuscules
result = s.str.replace(r'[aeiou]', lambda m: m.group(0).upper(), regex=True)

print("Série d'origine :")
print(s)
print("nAprès conversion des voyelles en majuscules :")
print(result)

Résultat de sortie :

原始 Series:
0       hello
1       world
2      example
3      python
dtype: object

将元音字母转为大写后:
0       hEllo
1       wOrld
2       example
3       pythOn

Explication du code :

  • La fonction de rappel reçoit un objet de correspondance, et vous pouvez utiliserm.group(0)pour obtenir le contenu correspondant.
  • Convertit les voyelles (a, e, i, o, u) en majuscules.
  • C'est un bon moyen d'implémenter une logique de remplacement plus complexe.

Exemple 5 : Normalisation des formats de données

Dans les projets réels,replace()il est souvent utilisé pour standardiser les formats de données.

Exemple

import pandas as pd

# Simuler des noms de pays saisis par l'utilisateur (formats incohérents)
countries = pd.Series(['USA', 'U.S.A.', 'U.S.A', 'usa', 'us', 'United States'])

# Remplacer uniformément par des noms standard
result = countries.replace({
    'USA': 'US',
    'U.S.A.': 'US',
    'U.S.A': 'US',
    'usa': 'US',
    'us': 'US',
    'United States': 'US'
})

print("Noms de pays originaux :")
print(countries)
print("Résultat après unification :")
print(result)

Résultat de sortie :

原始国家名称:
0           USA
1        U.S.A.
2         U.S.A
3           usa
4            us
5    United States
dtype:
object

统一后的结果:
0    US
1    US
2    US
3    US
4    0    US
dtype: object

Explication du code :

  • Cet exemple utilise la Seriesreplace()méthode (pas str.replace).
  • Vous pouvez passer un dictionnaire pour remplacer plusieurs valeurs en lot.
  • Unifie diverses représentations différentes en un format standard.

Notes

  • Par défaut (regex=False),patle paramètre est traité comme une chaîne simple, et seule la première correspondance est remplacée.
  • Setregex=Trueà True, utiliser des expressions régulières pour la correspondance, et toutes les correspondances peuvent être remplacées.
  • Certains caractères spéciaux dans les expressions régulières (tels que.、*etc.) doivent être échappés.
  • Si la Series contient des valeurs NaN,replace()il renverra NaN.
  • Cette fonction renvoie une nouvelle Series et ne modifie pas les données d'origine.

Pandas 常用函数Fonctions courantes de Pandas

Autres extensions