Saltar al contenido principal

Usar expresiones regulares para limpiar cadenas

Este tutorial toma material del curso Cleaning Data in Python de DataCamp y te enseña a limpiar cadenas con expresiones regulares.
· 4 min leer

Explora con IA

Si quieres hacer nuestro curso gratuito de introducción a R, aquí tienes el enlace.

Extraer valores numéricos de cadenas

Extraer números de cadenas es una tarea habitual, sobre todo cuando trabajas con datos no estructurados o archivos de registro.

Imagina que tienes la siguiente cadena: 'the recipe calls for 6 strawberries and 2 bananas'.

Sería útil extraer el 6 y el 2 de esta cadena para guardarlos y después comparar la proporción de fresas y plátanos.

Cuando uses una expresión regular para extraer varios números (o, más exactamente, varias coincidencias de patrón), puedes recurrir a la función re.findall(). Dan no la trató en el vídeo, pero es fácil de usar: pasas un patrón y una cadena a re.findall() y devuelve una lista con las coincidencias.

Instrucciones

  • Importa re.
  • Escribe un patrón que encuentre todos los números en la siguiente cadena: 'the recipe calls for 10 strawberries and 1 banana'. Para ello:
    • Usa la función re.findall() y pásale dos argumentos: primero el patrón y después la cadena.
    • \d es el patrón para encontrar dígitos. Debe ir seguido de un + para que el elemento anterior coincida una o más veces. Así te aseguras de que 10 se considere un único número y no 1 y 0 por separado.
  • Imprime las coincidencias para confirmar que tu expresión regular encontró los valores 10 y 1.

         # Import the regular expression module
         ____

         # Find the numeric values: matches
         matches = re.findall('____', '____')

         # Print the matches
         print(____)

         

Si esto te ha quedado claro, sigue con el siguiente ejercicio. Si no, aquí tienes un vídeo de resumen.

Vídeo general sobre cómo usar expresiones regulares para limpiar cadenas en Python

Búsqueda de patrones

En este ejercicio seguirás practicando con expresiones regulares. Para cada cadena proporcionada, tu tarea es escribir el patrón adecuado para que coincida.

Instrucciones

  • Escribe patrones para que coincidan con:
    • Un número de teléfono con el formato xxx-xxx-xxxx. Ya lo hiciste en un ejercicio anterior.
    • Una cadena con el formato: un símbolo de dólar, un número arbitrario de dígitos, un punto decimal y 2 dígitos.
      • Usa \$ para el símbolo del dólar, \d* para un número arbitrario de dígitos, \. para el punto decimal y \d{x} para que coincida con x dígitos.
  • Una letra mayúscula seguida de un número arbitrario de caracteres alfanuméricos.
    • Usa [A-Z] para cualquier letra mayúscula seguido de \w* para un número arbitrario de caracteres alfanuméricos.

          # 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 quieres aprender más con este curso, aquí tienes el enlace.

Echa un vistazo al Python String Tutorial de DataCamp.

Temas

Relacionado

Tutorial

Tutorial de cadenas en Python