Nettoyer des chaînes avec des expressions régulières
Ce tutoriel reprend des extraits du cours Cleaning Data in Python de DataCamp et vous montre comment nettoyer des chaînes avec des expressions régulières.
Si vous souhaitez suivre notre cours gratuit Intro to R, voici le lien.
Extraire des valeurs numériques de chaînes
Extraire des nombres de chaînes est une tâche courante, en particulier avec des données non structurées ou des fichiers journaux.
Supposons que vous ayez la chaîne suivante : 'the recipe calls for 6 strawberries and 2 bananas'.
Il peut être utile d’extraire le 6 et le 2 de cette chaîne pour les réutiliser ensuite, par exemple pour comparer les proportions fraises/bananes.
Lorsque vous utilisez une expression régulière pour extraire plusieurs nombres (ou plus précisément, plusieurs correspondances de motif), vous pouvez employer la fonction re.findall(). Dan n’en a pas parlé dans la vidéo, mais son utilisation est simple : vous transmettez un motif et une chaîne à re.findall(), qui renvoie une liste des correspondances.
Consignes
Importez re.
Écrivez un motif qui trouve tous les nombres dans la chaîne suivante : 'the recipe calls for 10 strawberries and 1 banana'. Pour cela :
Utilisez la fonction re.findall() avec deux arguments : le motif, puis la chaîne.
\d est le motif pour trouver des chiffres. Ajoutez un + pour indiquer que l’élément précédent doit correspondre une ou plusieurs fois. Cela garantit que 10 est pris comme un seul nombre et non comme 1 et 0.
Affichez les correspondances pour vérifier que votre expression régulière a bien trouvé les valeurs 10 et 1.
# Import the regular expression module
____
# Find the numeric values: matches
matches = re.findall('____', '____')
# Print the matches
print(____)
Si tout est clair, passez à l’exercice suivant ! Sinon, voici une vidéo de synthèse.
Vidéo de synthèse : utiliser les expressions régulières pour nettoyer des chaînes en Python
Appariement de motifs
Dans cet exercice, vous allez continuer à pratiquer les expressions régulières. Pour chaque chaîne fournie, votre objectif est d’écrire le motif approprié pour la faire correspondre.
Consignes
Écrivez des motifs pour faire correspondre :
Un numéro de téléphone au format xxx-xxx-xxxx. Vous l’avez déjà fait dans un exercice précédent.
Une chaîne au format : un signe dollar, un nombre arbitraire de chiffres, un point décimal, puis 2 chiffres.
Utilisez \$ pour le signe dollar, \d* pour un nombre arbitraire de chiffres, \. pour le point décimal, et \d{x} pour faire correspondre x chiffres.
Une majuscule suivie d’un nombre arbitraire de caractères alphanumériques.
Utilisez [A-Z] pour n’importe quelle majuscule, suivi de \w* pour un nombre arbitraire de caractères alphanumériques.
# Write the first pattern
pattern1 = bool(re.match(pattern='____', string='123-456-7890'))
print(pattern1)
# Write the second pattern
pattern2 = bool(re.match(pattern='____', string='$123.45'))
print(pattern2)
# Write the third pattern
pattern3 = bool(re.match(pattern='____', string='Australia'))
print(pattern3)
Si vous souhaitez aller plus loin avec ce cours, voici le lien.
Initiez-vous aux structures de données de Python : apprenez-en plus sur les types de données et les structures de données primitives et non primitives, telles que les chaînes de caractères, les listes, les piles, etc.
Tutoriel complet d'introduction aux boucles Python. Apprenez et pratiquez les boucles while et for, les boucles imbriquées, les mots-clés break et continue, la fonction range et bien plus encore.
Si vous souhaitez suivre notre cours gratuit Intro to R, voici le lien.
Extraire des valeurs numériques de chaînes
Extraire des nombres de chaînes est une tâche courante, en particulier avec des données non structurées ou des fichiers journaux.
Supposons que vous ayez la chaîne suivante :
'the recipe calls for 6 strawberries and 2 bananas'.Il peut être utile d’extraire le
6et le2de cette chaîne pour les réutiliser ensuite, par exemple pour comparer les proportions fraises/bananes.Lorsque vous utilisez une expression régulière pour extraire plusieurs nombres (ou plus précisément, plusieurs correspondances de motif), vous pouvez employer la fonction
re.findall(). Dan n’en a pas parlé dans la vidéo, mais son utilisation est simple : vous transmettez un motif et une chaîne àre.findall(), qui renvoie une liste des correspondances.Consignes
re.'the recipe calls for 10 strawberries and 1 banana'. Pour cela :re.findall()avec deux arguments : le motif, puis la chaîne.\dest le motif pour trouver des chiffres. Ajoutez un+pour indiquer que l’élément précédent doit correspondre une ou plusieurs fois. Cela garantit que10est pris comme un seul nombre et non comme1et0.10et1.Si tout est clair, passez à l’exercice suivant ! Sinon, voici une vidéo de synthèse.
Vidéo de synthèse : utiliser les expressions régulières pour nettoyer des chaînes en Python
Appariement de motifs
Dans cet exercice, vous allez continuer à pratiquer les expressions régulières. Pour chaque chaîne fournie, votre objectif est d’écrire le motif approprié pour la faire correspondre.
Consignes
xxx-xxx-xxxx. Vous l’avez déjà fait dans un exercice précédent.\$pour le signe dollar,\d*pour un nombre arbitraire de chiffres,\.pour le point décimal, et\d{x}pour faire correspondrexchiffres.[A-Z]pour n’importe quelle majuscule, suivi de\w*pour un nombre arbitraire de caractères alphanumériques.Si vous souhaitez aller plus loin avec ce cours, voici le lien.
Découvrez le Python String Tutorial de DataCamp.