Programa
Recortar texto es una tarea fundamental al manejar datos de texto en Python, especialmente en las fases de limpieza y preparación de datos de los proyectos de ciencia de datos. El recorte ayuda a eliminar caracteres no deseados, como espacios en blanco, del principio y el final de las cadenas, lo que hace que tus datos sean más coherentes y estén listos para su análisis.
En este tutorial, te guiaré a través de los tres métodos principales para recortar cadenas en Python: .strip(), .lstrip() y .rstrip(), y cubriré casos de uso específicos para demostrar su versatilidad y utilidad en escenarios del mundo real.
3 métodos para recortar una cadena en Python
Python proporciona métodos integrados para recortar cadenas, lo que facilita la limpieza y el preprocesamiento de datos textuales. Estos métodos incluyen
.strip(): Elimina los caracteres iniciales y finales (espacios en blanco por defecto)..lstrip(): Elimina los caracteres iniciales (espacios en blanco por defecto) del lado izquierdo de la cadena..rstrip(): Elimina los caracteres finales (espacios en blanco por defecto) del lado derecho de la cadena.
Comprender estos métodos permite manipular y preparar textos de forma eficiente, lo cual es fundamental para cualquier tarea de ciencia de datos que implique datos textuales.
1. Eliminar espacios en blanco al principio y al final de cadenas en Python utilizando .strip()
El método .strip() está diseñado para eliminar los caracteres iniciales y finales de una cadena. Se utiliza más comúnmente para eliminar espacios en blanco. A continuación se muestra un ejemplo de su uso en la cadena " I love learning Python! ".
text = " I love learning Python! "
trimmed_text = text.strip()
print(trimmed_text) # Output: "I love learning Python!"
Este método es especialmente útil para estandarizar cadenas que pueden contener diferentes cantidades de espacios en blanco al principio y al final.
2. Eliminar espacios en blanco al principio de las cadenas en Python utilizando .lstrip()
El método .lstrip() se centra en la parte izquierda de una cadena y elimina los caracteres iniciales. De forma predeterminada, elimina los espacios en blanco, pero se puede configurar para que elimine caracteres específicos. Aquí se muestra el método .lstrip() aplicado a la misma cadena " I love learning Python! " del ejemplo anterior:
text = " I love learning Python! "
left_trimmed_text = text.lstrip()
print(left_trimmed_text) # Output: "I love learning Python! "
.lstrip() Es útil cuando necesitas limpiar cadenas que comienzan con espacios o caracteres no deseados, como en listas de nombres o datos categóricos.
3. Eliminar espacios en blanco al final de las cadenas en Python utilizando .rstrip()
El método .rstrip() complementa a .lstrip() eliminando los caracteres finales de la parte derecha de una cadena. Comparte la flexibilidad de especificar qué caracteres eliminar. Aquí se aplica al mismo ejemplo anterior:
text = " I love learning Python! "
right_trimmed_text = text.rstrip()
print(right_trimmed_text) # Output: " I love learning Python!"
Utiliza .rstrip() cuando trabajes con cadenas que contengan caracteres no deseados o espacios al final, como signos de puntuación o anotaciones.
Eliminar caracteres específicos de una cadena en Python
Los métodos de recorte de cadenas de Python te permiten especificar qué caracteres eliminar del principio y del final de las cadenas. Esta funcionalidad añade una capa de flexibilidad a los métodos .strip(), .lstrip() y .rstrip(), lo que permite operaciones de limpieza de cadenas más específicas.
Sin embargo, como veremos en nuestros ejemplos, es importante reconocer las limitaciones inherentes a estos métodos: no son capaces de eliminar caracteres del medio de las cadenas ni de gestionar eliminaciones más complejas basadas en patrones. Para necesidades tan avanzadas, las expresiones regulares (regex) ofrecen una solución más robusta.
Eliminar caracteres específicos de una cadena en Python utilizando .strip()
En primer lugar, comencemos con el método .strip(). El método .strip() se puede personalizar para eliminar no solo los espacios en blanco, sino también caracteres específicos de ambos extremos de una cadena. Aquí tienes un ejemplo:
text = "!!!I love learning Python!!!"
specific_char_trimmed = text.strip('!')
print(specific_char_trimmed) # Output: "I love learning Python"
Ahora imaginemos que nuestra cadena es en realidad "xxxyyy I love learning Python xxxyyy". Dado que ”xxx” y ”yyy” aparecen al principio y al final de la cadena, es posible eliminarlos especificando el carácter xy como el carácter que se debe eliminar. ¡Aquí lo tienes en acción!
text = "xxxyyy I love learning Python xxxyyy"
specific_chars_trimmed = text.strip('xy')
print(specific_chars_trimmed) # Output: " I love learning Python "
Como se mencionó anteriormente, es fundamental comprender que .strip() no puede eliminar caracteres del medio de la cadena. Por ejemplo, si el texto que estamos eliminando es "!!!I love learning!!! Python!!!", el resultado de la operación anterior sería ”I love learning!!! Python”. Para operaciones de eliminación más complejas, es mejor consultar las expresiones regulares en lugar de los métodos de eliminación descritos en este tutorial.
Eliminar caracteres específicos de una cadena en Python utilizando .lstrip() y .rstrip()
Lo mismo se puede aplicar a los métodos .lstrip() y .rstrip(). A continuación se muestran ejemplos de cómo eliminar caracteres iniciales y finales específicos en .lstrip() y .rstrip(), respectivamente:
text = "!!!I love learning Python!!!"
left_char_trimmed = text.lstrip('!')
print(left_char_trimmed) # Output: "I love learning Python!!!"
right_char_trimmed = text.rstrip('!')
print(right_char_trimmed) # Output: "!!!I love learning Python"
Además, la misma técnica de eliminación de varios caracteres se puede aplicar a .lstrip() y .rstrip()
text = "xxxyyy I love learning Python xxxyyy"
left_chars_trimmed = text.lstrip('xy')
print(left_chars_trimmed) # Output: " I love learning Python xxxyyy"
right_chars_trimmed = text.rstrip('xy')
print(right_chars_trimmed) # Output: "xxxyyy I love learning Python"
Nuevos métodos de recorte de cadenas en Python 3.9
Python 3.9 introdujo str.removeprefix() y str.removesuffix(), que eliminan explícitamente los prefijos o sufijos conocidos.
Eliminar un prefijo utilizando removeprefix()
text = "Python_is_fun"
trimmed_text = text.removeprefix("Python_")
print(trimmed_text) # Output: "is_fun"
Eliminar un sufijo utilizando removesuffix()
text = "data_cleaning.csv"
trimmed_text = text.removesuffix(".csv")
print(trimmed_text) # Output: "data_cleaning"
Consideraciones sobre el rendimiento al recortar cadenas
Cuando se trabaja con grandes conjuntos de datos, es importante recortar las cadenas de forma eficiente. .strip(), .lstrip() y .rstrip() funcionan con una complejidad temporal O(n). Sin embargo, para conjuntos de datos masivos, el uso de operaciones vectorizadas en Pandas puede ser más eficiente:
import pandas as pd
df = pd.DataFrame({"text": [" Data Science ", " Machine Learning "]})
df["cleaned_text"] = df["text"].str.strip()
print(df)
Conclusión
Comprender el recorte y la manipulación de cadenas es esencial para programar eficazmente en Python. Si bien los métodos .strip(), .lstrip() y .rstrip() satisfacen las necesidades básicas, abordar escenarios más complejos puede requerir profundizar en las expresiones regulares. Para seguir aprendiendo, te recomendamos que explores nuestro tutorial sobre expresiones regulares o, mejor aún, que te inicies en el programa de habilidades de procesamiento del lenguaje natural en Python de DataCamp.
Aprende Python desde cero

Adel es educador de Ciencia de Datos, conferenciante y Evangelista en DataCamp, donde ha publicado varios cursos y formación en directo sobre análisis de datos, aprendizaje automático e ingeniería de datos. Le apasiona difundir las habilidades y la alfabetización en materia de datos en las organizaciones y en la intersección entre tecnología y sociedad. Tiene un máster en Ciencia de Datos y Análisis Empresarial. En su tiempo libre, puedes encontrarle pasando el rato con su gato Louis.
Preguntas frecuentes
¿Puedo usar .strip(), .lstrip() o .rstrip() para eliminar caracteres numéricos de una cadena?
Sí, puedes especificar caracteres numéricos como destino para la eliminación. Por ejemplo:
text = "12345Python12345"
trimmed_text = text.strip('12345')
print(trimmed_text) # Output: "Python"¿Cómo gestionan .strip(), .lstrip() y .rstrip() las cadenas con caracteres de espacio en blanco mixtos, como tabulaciones o saltos de línea?
De forma predeterminada, estos métodos eliminan todos los tipos de espacios en blanco, incluidos los espacios, las tabulaciones (\t) y los saltos de línea (\n). Por ejemplo:
text = "\t\n Python Programming \n\t"
trimmed_text = text.strip()
print(trimmed_text) # Output: "Python Programming"¿Qué ocurre si llamas a .strip(), .lstrip() o .rstrip() en una cadena vacía?
Si llamas a estos métodos con una cadena vacía, devuelven una cadena vacía sin errores. Por ejemplo:
text = ""
trimmed_text = text.strip()
print(trimmed_text) # Output: ""