• Saltar al contenido principal
  • Skip to secondary menu
  • Saltar a la barra lateral principal
  • Saltar al pie de página
  • Inicio
  • Secciones
    • Ciencia de datos
    • Criptografía
    • Herramientas
    • Machine Learning
    • Noticias
    • Opinión
    • Productividad
    • Programación
      • JavaScript
      • Julia
      • Matlab
      • Python
      • R
  • Programación
    • JavaScript
    • Julia
    • Matlab
    • Python
    • R
  • Laboratorio
    • Estadística
      • Calculadora del Tamaño Muestral en Encuestas
      • Calculadora de estadísticos descriptivos
      • Test de normalidad
      • Calculadora de contrastes de hipotesis
      • Calculadora de tamano del efecto
      • Simulador de Regresión Lineal con Ruido
      • Visualizador de PCA
      • Visualizador de Series Temporales
      • Simulador de Regresión Logística
      • Simulador de K-Means
      • Simulador de DBSCAN
      • Detector de la Ley de Benford
    • Probabilidad
      • Calculadora de Probabilidad de Distribuciones
      • Calculadora de Probabilidades de Lotería
      • Simulador del Problema de Monty Hall
      • Simulador de la Estrategia Martingala
    • Finanzas
      • Calculadora de Préstamos e Hipotecas
      • Conversor TIN ↔ TAE
      • Calculadora DCA con ajuste por inflación
      • Simulador FIRE (Financial Independence, Retire Early)
    • Herramientas
      • Formateador / Minificador de JSON
      • Comparador y Formateador de Texto y JSON
      • Formateador y Tester de Expresiones Regulares
      • Inspector de JWT
      • Generador y verificador de hashes
      • Codificador / Decodificador Base64 y URL
      • Conversor de bases numericas
      • Conversor de Timestamp Unix
      • Conversor de colores
      • Generador de UUIDs
    • Juegos
      • Tres en Raya
      • Nim con Q-Learning
    • Más
      • Método D’Hondt
      • Generador de Contraseñas Seguras
  • Noticias
  • Boletín
  • Contacto
  • Tienda
    • Libros
    • Equipamiento de oficina
    • Equipamiento en movilidad

Analytics Lane

Ciencia e ingeniería de datos aplicada

  • Ciencia de datos
  • Machine Learning
  • IA Generativa
  • Python
  • Pandas
  • NumPy
  • R
  • Excel

Cómo buscar y reemplazar texto con expresiones regulares en pandas

noviembre 11, 2024 Por Daniel Rodríguez Deja un comentario
Tiempo de lectura: 4 minutos

pandas

El análisis y limpieza de datos son tareas clave para el éxito en cualquier proyecto de análisis de datos. En el caso de que algunos de los datos a analizar sean de tipo texto, las expresiones regulares se vuelven una herramienta imprescindible para poder manipular estos de forma precisa y eficiente. Tarea que se puede realizar directamente en Pandas. En Python, la biblioteca Pandas permite trabajar con datos estructurados, y gracias a sus métodos para trabajar con texto y expresiones regulares, se pueden realizar transformaciones complejas de una manera sencilla y directa. En esta entrada, se verá cómo se utilizan expresiones regulares en Pandas para realizar tareas de búsqueda y reemplazo en texto, explorando algunas de las opciones más útiles. Para esto se recurrirá a los métodos str.contains() y str.replace(), los cuales permiten buscar, identificar y modificar elementos de un DataFrame según patrones específicos.

Tabla de contenidos

  • 1 ¿Qué son las expresiones regulares?
  • 2 Cómo usar expresiones regulares en pandas
  • 3 Ejemplos prácticos de uso de expresiones regulares en pandas
    • 3.1 Ejemplo 1: Eliminar caracteres especiales de una columna de texto
    • 3.2 Ejemplo 2: Extraer números de una columna de texto
    • 3.3 Ejemplo 3: Formatear números de teléfono
  • 4 Conclusiones

¿Qué son las expresiones regulares?

Las expresiones regulares, también conocidas como regex, son patrones que describen secuencias de caracteres. Estos patrones pueden utilizarse para encontrar coincidencias en textos y realizar operaciones como buscar, extraer o reemplazar partes del texto. Siendo especialmente útiles en tareas de limpieza y manipulación de datos. Lo que facilita trabajar con grandes volúmenes de texto sin tener que procesar manualmente cada elemento.

Algunos de los patrones básicos que se pueden usar en expresiones regulares incluyen:

Nuevo simulador FIRE en el laboratorio de aplicaciones de Analytics Lane
En Analytics Lane
Nuevo simulador FIRE en el laboratorio de aplicaciones de Analytics Lane

  • \d: Coincide con cualquier dígito (0-9).
  • \w: Coincide con cualquier carácter alfanumérico (letras y números).
  • \s: Coincide con espacios en blanco (espacios, tabulaciones).
  • +: Indica una o más ocurrencias del patrón anterior.
  • *: Indica cero o más ocurrencias del patrón anterior.
  • []: Define un conjunto de caracteres permitidos (por ejemplo, [aeiou] para vocales).

Estos patrones se pueden combinar en las columnas de los DataFrame de Pandas mediante los métodos str.contains() y str.replace(). Los cuales, respectivamente, permiten detectar y reemplazar patrones de texto de manera eficiente.

Cómo usar expresiones regulares en pandas

Pandas proporciona métodos específicos para trabajar con datos de texto, entre los cuales se encuentran str.contains() y str.replace(). A continuación, se mostrará cómo utilizar estos métodos.

  1. Buscar un patrón específico en una columna. Con str.contains(), se puede comprobar si una columna contiene ciertos patrones en cada fila. Este método es útil cuando se desea filtrar un DataFrame en función de si un patrón está presente en una columna de texto.
# Filtrar filas donde la columna 'col1' contiene números
df[df['col1'].str.contains(r'\d+', regex=True)]

En este ejemplo, el patrón \d+ busca filas que contienen uno o más dígitos en la columna col1. Esta búsqueda no cambia el contenido, sino que permite seleccionar o identificar las filas que cumplen con el criterio.

  1. Reemplazar un patrón en una columna. str.replace() es el método ideal cuando se necesita eliminar o reemplazar partes específicas del texto en una columna. Por ejemplo, si se desea eliminar todos los dígitos de una columna, es posible usar la siguiente expresión:
# Eliminar todos los números de la columna 'col1'
df['col1'] = df['col1'].str.replace(r'\d+', '', regex=True)

Aquí, \d+ coincide con uno o más dígitos en cada valor de col1, y los reemplaza con una cadena vacía (''). Esto es muy útil cuando se necesita limpiar datos de texto que incluyen información no deseada, como códigos o números.

Publicidad


Ejemplos prácticos de uso de expresiones regulares en pandas

A continuación, se muestran tres ejemplos donde el uso de expresiones regulares en Pandas es especialmente útil para la limpieza de datos.

Ejemplo 1: Eliminar caracteres especiales de una columna de texto

Si se tiene una columna en un DataFrame que contiene nombres, pero con caracteres especiales no deseados (por ejemplo, puntuaciones como !, @, y #). Para limpiar esta columna y eliminar todos los caracteres especiales, se puede recurrir al siguiente código:

# Eliminar caracteres especiales de la columna 'names'
df['names'] = df['names'].str.replace(r'[!@#\$%\^&\*\(\)]', '', regex=True)

En este ejemplo, el patrón [!@#\$%\^&\*\(\)] coincide con los caracteres especiales indicados anteriormente y los elimina de cada valor de la columna names. Esto es útil para limpiar nombres, direcciones y otros datos textuales que contienen caracteres no deseados.

Ejemplo 2: Extraer números de una columna de texto

En algunos casos, solo es necesario extraer los números de una columna de texto. Supóngase el caso de un DataFrame con una columna que contiene direcciones de la que solamente se dese extraer el número de la calle. Esto se puede hacer usando el método str.extract(), que funciona de manera similar a str.replace(), pero en lugar de eliminar el patrón, lo extrae.

# Extraer números de la columna 'address'
df['street_number'] = df['address'].str.extract(r'(\d+)', expand=False)

El patrón \d+ encuentra los números en la columna address y crea una nueva columna, street_number, con el número de la calle. Esta técnica es útil para tareas como extraer códigos postales, números de teléfono o identificadores numéricos de datos textuales.

Publicidad


Ejemplo 3: Formatear números de teléfono

Ahora supóngase que se dispone de una columna que contiene números de teléfono en diferentes formatos y se desea estandarizarlos. Para ello se puede recurrir al método str.replace(), con el cual es posible dar formato a los números con un patrón consistente. Por ejemplo:

# Estandarizar números de teléfono
df['phone'] = df['phone'].str.replace(r'\D', '', regex=True)  # Eliminar caracteres no numéricos
df['phone'] = df['phone'].str.replace(r'(\d{3})(\d{3})(\d+)', r'\1 \2 \3', regex=True)

En este caso, primero elimina todos los caracteres no numéricos con \D (cualquier cosa que no sea un dígito). Luego se usa el patrón (\d{3})(\d{3})(\d+) para capturar las partes del número de teléfono y darles formato. Por ejemplo, un número como 123456789 se convertirá en 123 456 789, creando una representación estándar para todos los números de teléfono en el DataFrame.

Conclusiones

El uso de expresiones regulares en pandas permite realizar la limpieza y transformación de datos de columnas de texto de una forma rápida y eficiente. Permitiendo resolver desde problemas sencillos, como la eliminación de caracteres no deseados en los textos, hasta tareas mucho más avanzadas, como aplicar un formato específico para diferentes textos. Conocer y aplicar las expresiones regulares en Pandas puede hacer mucho más sencillo el trabajo de limpieza de datos.

¿Te ha parecido de utilidad el contenido?

¡Puntúalo entre una y cinco estrellas!

Puntuación promedio 0 / 5. Votos emitidos: 0

Ya que has encontrado útil este contenido...

¡Síguenos en redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?

Publicaciones relacionadas

  • Nuevo simulador FIRE en el laboratorio de aplicaciones de Analytics Lane
  • Nueva calculadora de préstamos e hipotecas en el laboratorio de aplicaciones de Analytics Lane
  • Hardening avanzado de NGINX: CSP, OCSP Stapling y defensa en profundidad
  • Nuevo generador y verificador de hashes en el laboratorio de aplicaciones de Analytics Lane
  • Nueva simulación de la estrategia Martingala en ruleta en el laboratorio de aplicaciones de Analytics Lane
  • Exactitud, precisión, recall… y los errores que cometemos al interpretarlas en proyectos reales
  • Nuevo simulador del problema de Monty Hall en el laboratorio de aplicaciones de Analytics Lane
  • Nuevo simulador interactivo de K-Means en el laboratorio de aplicaciones de Analytics Lane
  • Por qué los chatbots de inteligencia artificial parecen estar siempre de acuerdo contigo – Conversar con una inteligencia artificial – Parte I

Publicado en: Python Etiquetado como: Pandas

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

I accept the Terms and Conditions and the Privacy Policy

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Barra lateral principal

Suscríbete a nuestro boletín

Suscríbete al boletín semanal para estar al día de todas las publicaciones.

Política de Privacidad

Analytics Lane en redes sociales

  • Amazon
  • Bluesky
  • Facebook
  • GitHub
  • Instagram
  • Mastodon
  • Pinterest
  • RSS
  • Telegram
  • Tumblr
  • Twitter
  • YouTube

Publicidad

Entradas recientes

Nuevo Inspector de JWT en el laboratorio de aplicaciones de Analytics Lane

abril 20, 2026 Por Daniel Rodríguez

Nuevo simulador de regresión logística en el laboratorio de aplicaciones de Analytics Lane

abril 17, 2026 Por Daniel Rodríguez

Nuevo simulador de regresión lineal con ruido en el laboratorio de aplicaciones de Analytics Lane

abril 16, 2026 Por Daniel Rodríguez

Publicidad

Es tendencia

  • Nuevo Inspector de JWT en el laboratorio de aplicaciones de Analytics Lane publicado el abril 20, 2026 | en Noticias
  • Creación de gráficos de barras y gráficos de columnas con Seaborn publicado el julio 18, 2023 | en Python
  • El método de Muller e implementación en Python publicado el marzo 24, 2023 | en Ciencia de datos
  • El método de la bisección e implementación en Python publicado el marzo 11, 2022 | en Ciencia de datos
  • Cómo calcular el tamaño de la muestra para encuestas publicado el septiembre 9, 2025 | en Ciencia de datos

Publicidad

Lo mejor valorado

4.9 (24)

Seleccionar filas y columnas en Pandas con iloc y loc

4.6 (16)

Archivos JSON con Python: lectura y escritura

4.4 (14)

Ordenación de diccionarios en Python mediante clave o valor

4.7 (13)

Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas

4.9 (11)

Pandas: Cambiar los tipos de datos en los DataFrames

Comentarios recientes

  • M. Pilar en Cómo eliminar las noticias en Windows 11 y recuperar tu concentración
  • Daniel Rodríguez en Probabilidad básica: cómo entender el azar en nuestra vida diaria
  • Pepe en Probabilidad básica: cómo entender el azar en nuestra vida diaria
  • CARLOS ARETURO BELLO CACERES en Justicio: La herramienta gratuita de IA para consultas legales
  • Piera en Ecuaciones multilínea en Markdown

Publicidad


Footer

Analytics Lane

  • Acerca de Analytics Lane
  • Boletín de noticias
  • Contacto
  • Libros
  • Lo más popular
  • Noticias
  • Tienda
  • Tiendas afiliadas

Secciones

  • Ciencia de datos
  • Criptografía
  • Herramientas
  • Machine Learning
  • Opinión
  • Productividad
  • Programación
  • Reseñas

Sobre de Analytics Lane

En Analytics Lane tratamos de explicar los principales conceptos de la ciencia e ingeniería de datos con un enfoque práctico. Los principales temas tratados son ciencia de datos, ingeniería de datos, inteligencia artificial, machine learning, deep learning y criptografía. Además, también se habla de los principales lenguajes de programación y herramientas utilizadas por los científicos e ingenieros de datos.

Copyright © 2018-2026 Analytics Lane ·Términos y condiciones ·Política de Cookies ·Política de Privacidad ·Herramientas de privacidad ·Contacto