domingo, 14 de diciembre de 2025

Formateo de cadenas de texto. Python para ciencia de datos

Fuente: coursera & Google

Expresiones regulares (regex): las expresiones regulares son patrones que se utilizan para hacer coincidir combinaciones de caracteres en cadenas, esenciales para el procesamiento avanzado de texto y el análisis de datos.

Métodos de cadena: Python proporciona varios métodos de cadena integrados, como count(), find() y replace(), para facilitar la manipulación de cadenas.

Método format(): El método format() permite la inserción de variables en cadenas, lo que permite la creación y manipulación dinámica de cadenas.

Cadenas f: las cadenas F son una forma concisa de incrustar expresiones dentro de cadenas literales, introducidas en Python 3.6, lo que mejora la legibilidad y la eficiencia.

Formato de cadenas: el formato de cadenas es el proceso de insertar subcadenas específicas en lugares designados dentro de una cadena más grande, utilizando métodos como format() y f-strings.

Como has aprendido, las cadenas son una clase de datos crucial porque representan información textual. Los profesionales de los datos se encuentran con cadenas todo el tiempo, por lo que es importante familiarizarse con las diferentes formas de manipularlas y trabajar con ellas. Esta lectura repasará las técnicas de formateo de cadenas que has aprendido, y también te introducirá a las expresiones regulares.

Formato de cadenas

El formateo de cadenas utiliza el método format(), que pertenece a la clase string. Este método formatea e inserta subcadenas específicas en lugares designados dentro de una cadena más grande. Es útil cuando tienes texto de plantilla reutilizable en el que quieres insertar valores específicos modificables, por ejemplo. El método format() también es útil para asignar las cadenas utilizadas para etiquetar los cuadros y gráficos que elabore.

He aquí un ejemplo:

>>x = 'values'
>>y = 100

print('''String formatting lets you insert {} into strings.
They can even be numbers, like {}.'''.format(x, y))

>>>String formatting lets you insert values into strings. >>>They can even be numbers, like 100.

Fíjese en la sintaxis. La función format() inserta sus argumentos entre llaves dentro de la cadena a la que se adjunta. El orden de inserción sigue el orden de los argumentos. Además, este ejemplo incluye un truco útil. A veces se encontrará con una cadena muy larga. Muchos editores permitirán que la cadena siga extendiéndose hacia la derecha en una sola línea. Esto es poco práctico a menos que tengas un monitor muy ancho, pero 79 caracteres es una longitud máxima convencional para una sola línea de código Python. Si encierras tu cadena entre comillas triples, podrás dividirla en varias líneas.

La función format() también puede insertar valores entre llaves utilizando nombres de palabras clave asignados explícitamente, que le permiten mezclar el orden de los argumentos de la función sin cambiar el orden de su inserción en la cadena final.

Por ejemplo:

>>var_a = 'A'
>>var_b = 'B'
>>print('{a}, {b}'.format(b=var_b, a=var_a))

Vamos a simbolizar las salidas con >>>
>>>A, B

Como los argumentos tenían nombre, no importaba que se introdujeran con var_b primero y var_a después; seguían insertándose en la cadena en el orden especificado.

También puede incluir los números de índice de los argumentos entre llaves para indicar qué argumentos se insertan en lugares específicos:

>>var_a = 'A'
>>var_b = 'B'
>>print('{1}, {0}'.format(var_a, var_b))
>>print('{0}, {1}'.format(var_a, var_b))

>>>B, A >>>A, B

Puedes tener tantos argumentos como quieras:

1, 2, 3, 4, 5, 6 ...

Y puedes repetir los índices de los argumentos:

>>print('{0}{1}{0}'.format('abra''cad'))
>>>abracadabra

El método de cadena format() es una forma versátil y práctica de tomar valores almacenados en distintas variables e insertarlos en una cadena.

Interpolación literal de cadenas (f-strings)

Otra técnica de formateo de cadenas que encontrarás a menudo cuando utilices Python versión 3.6+ es la interpolación literal de cadenas, también conocida como f-strings. Las cadenas-f minimizan aún más la sintaxis necesaria para incrustar expresiones en cadenas. Se llaman cadenas-f porque las expresiones siempre empiezan por f (o F, que es lo mismo).

Por ejemplo:

>>var_a = 1
>>var_b = 2
>>print(f'{var_a} + {var_b}')
>>print(f'{var_a + var_b}')
>>print(f'var_a = {var_a} \nvar_b = {var_b}')

>>>1 + 2 >>>3 >>>var_a = 1 >>>var_b = 2

En estos ejemplos, las llaves siguen funcionando como la forma de indicar dónde deben insertarse los valores en la cadena, pero permiten realizar la inserción directamente, sin tener que llamar al método format().

Opciones de formato flotante

Además de insertar expresiones en cadenas, el formateo de cadenas puede dar formato a su apariencia. Hay demasiadas opciones para enumerarlas aquí, pero la documentación de Python sobre cadenas es un buen lugar para revisar estas técnicas. He aquí algunas de las más útiles.

Para usar estas opciones, construya su expresión entre llaves como sigue.

  1. La variable float es lo que está siendo formateado

  2. Dos puntos (:) separa lo que se está formateando de la sintaxis utilizada para formatearlo

  3. .number indica la precisión deseada

  4. Una letra indica el tipo de presentación

Un modelo sintáctico que represente los componentes enumerados en esta sección de la lectura.

Ejemplo:

>>num = 1000.987123

>>f'{num:.2f}'
>>>1000.99

Este ejemplo utiliza el tipo de presentación f para especificar que el número contenido en la variable num debe redondearse a dos posiciones más allá del decimal.

Estos son algunos de los tipos de presentación más comunes:

Tipo

Significado

'e'

Notación científica. Para una precisión dada p, formatea el número en notación científica con la letra 'e' separando el coeficiente del exponente. El coeficiente tiene un dígito antes y p dígitos después del punto decimal, para un total de p + 1 dígitos significativos. Si no se indica la precisión, e utiliza una precisión de 6 dígitos después del punto decimal para el flotante, y muestra todos los dígitos del coeficiente para el decimal.

'f'

Notación en coma fija. Para una precisión dada p, formatea el número como un número decimal con exactamente p dígitos después del punto decimal.

'%'

Porcentaje. Multiplica el número por 100 y lo muestra en formato fijo ('f'), seguido de un signo de porcentaje.

He aquí algunos ejemplos:

>>num = 1000.987123
>>print(f'{num:.3e}')

>>decimal = 0.2497856
>>print(f'{decimal:.4%}')

>>>1.001e+03 >>>24.9786%

Métodos de cadena

COMO una de las principales clases de objetos en Python, las cadenas tienen muchos métodos incorporados diseñados para facilitar el trabajo con ellas. Hay demasiados de estos métodos para cubrirlos todos aquí en profundidad, pero algunos de los más útiles incluyen:

str.count(sub[, start[, end]])

Devuelve el número de ocurrencias no solapadas de la subcadena sub en el rango [start , end].

my_string = 'Happy birthday'

print(my_string.count('y'))
print(my_string.count('y'27))

>>>2
>>>1

str.find(sub)

Devuelve el índice más bajo de la cadena donde se encuentra la subcadena sub. Devuelve -1 si no se encuentra sub.

>>my_string = 'Happy birthday'

>>my_string.find('birth')

>>>6

str.join()

Devuelve una cadena que es la concatenación de las cadenas en iterable. El separador entre elementos es la cadena que proporciona este método.

>>separator_string = ' '
>>iterable_of_strings = ['Happy''birthday''to''you']

>>separator_string.join(iterable_of_strings)

>>>Happy birthday to you

str.partition(sep)

Divide la cadena en la primera aparición de sep , y devuelve una tripleta que contiene la parte anterior al separador, el propio separador y la parte posterior al separador. Si no se encuentra el separador, devuelve una tripleta que contiene la propia cadena seguida de dos cadenas vacías.

>>my_string = 'https://www.google.com/'

>>my_string.partition('.')

>>>('https://www', '.', 'google.com/')


str.replace(old, new[, count])

Devuelve una copia de la cadena con todas las apariciones de la subcadena old sustituidas por new. Si se indica el argumento opcional count, sólo se sustituyen las primeras count.

>>my_string = 'https://www.google.com/'

>>my_string.replace('google''youtube')

>>>https://www.youtube.com/


str.split([sep])

Devuelve una lista de las palabras de la cadena, utilizando sep (opcional) como cadena delimitadora. Si no se indica sep, se utilizarán los espacios en blanco como delimitadores. Cualquier número de espacios en blanco consecutivos indicaría un punto de división, por lo que ' ' (un solo espacio en blanco) se dividiría del mismo modo que ' ' (dos o más espacios en blanco).

>>my_string = 'Do you know the muffin man?'

>>my_string.split()

>>>['Do', 'you', 'know', 'the', 'muffin', 'man?']

Tenga en cuenta que algunos de estos métodos tienen parámetros opcionales adicionales. Esta lectura sólo cubre los más rudimentarios. Consulte la documentación completa

de los métodos de cadena para obtener más información sobre estas funciones y otros métodos no incluidos aquí.

Expresiones regulares

Las expresiones regulares, también conocidas como regex, se refieren a técnicas que los profesionales avanzados de datos utilizan para modificar y procesar datos de cadenas. Este programa no le obligará a utilizar expresiones regulares en su trabajo, pero es importante que conozca el concepto. ASÍ COMO siempre, le animamos a explorar las expresiones regulares por su cuenta.

Las expresiones regulares funcionan comparando patrones en Python. Te permite buscar patrones específicos de texto dentro de una cadena de texto. Regex se utiliza ampliamente en el web scraping, procesamiento y limpieza de texto, y análisis de datos.

El primer paso para trabajar con expresiones regulares es importar el módulo re. Este módulo proporciona las herramientas necesarias para trabajar con expresiones regulares. Una vez importado el módulo, puede empezar a trabajar con expresiones regulares.

Nota: El siguiente bloque de código no es interactivo.

La sintaxis básica de una expresión regular es:

>>import re

>>pattern = 'regex_pattern'

>>match = re.search(pattern, string)

He aquí un ejemplo básico:

>>import re

>>my_string = 'Three sad tigers swallowed wheat in a wheat field'

>>re.search('wall', my_string)

>>> <_sre.SRE_Match object; span=(18, 22), match='wall'>

Este ejemplo devuelve un objeto coincidente que contiene información sobre la búsqueda. En este caso, le dice que la subcadena ‘wall’ aparece en la cadena de los índices 18-22.

El regex es especialmente útil porque permite un alto grado de personalización a la hora de realizar las búsquedas.

He aquí otro ejemplo:

>>import re

>>my_string = 'Three sad tigers swallowed wheat in a wheat field'

>>re.search('[bms]ad', my_string)

>>> <_sre.SRE_Match object; span=(6, 9), match='sad'>

Este ejemplo buscará "malo", "loco" y "triste" De nuevo, se trata de ejemplos muy básicos.

Regex tiene un amplio catálogo de expresiones especiales que le permiten buscar subcadenas que sólo coincidirán si, por ejemplo, van seguidas de ciertos caracteres, o si no contienen un determinado conjunto de caracteres. Puede resultar muy complejo. Dependiendo del trabajo que realices como profesional de los datos, puede que te encuentres explorando expresiones regulares para analizar y procesar tus datos.

Puntos clave

El formateo de cadenas es el proceso de insertar subcadenas específicas en lugares designados dentro de una cadena más grande. A menudo, las subcadenas insertadas se procesan y formatean de una manera determinada. Existen varias formas de utilizar el formato de cadenas para ayudarte a procesarlas. Entre ellas se encuentran el método format(), las interpolaciones literales de cadenas -o cadenas f- y las expresiones regulares, también conocidas como regex. Los métodos que utilices dependerán de lo que exijan tus datos y de tus preferencias personales, pero es importante que te familiarices con las técnicas más comunes utilizadas por los profesionales de los datos.

No hay comentarios.:

Publicar un comentario

Entradas recientes

Python para ciencia de datos. Pandas y EDA

  Guía de referencia: Métodos Pandas para el descubrimiento de un conjunto de datos. Fuente: Coursera & Google Guía de referencia de Pyt...

Entradas Populares