Guía del método strip() de Python

En este tutorial, veremos el método strip() de Python y cómo podemos usarlo para recortar cadenas, a través de ejemplos prácticos.

Introducción

La manipulación de cadenas en Python se logra a través de un conjunto de métodos integrados, que devuelven nuevas cadenas ya que son inmutables. En esta guía, veremos métodos para eliminar espacios en blanco (en otros idiomas también se conoce como recorte) de cadenas en Python.

Métodos de recorte - strip()

En Python, los métodos de eliminación son capaces de eliminar espacios iniciales y finales y caracteres específicos. Los espacios iniciales y finales incluyen espacios en blanco, tabulaciones (\t), retornos de carro (\r, \n) y los otros espacios en blanco menos conocidos que se pueden encontrar [aquí](https:// en.wikipedia.org/wiki/Whitespace_character).

Hay tres formas en las que los espacios o caracteres específicos se pueden quitar de las cadenas:

  • strip(chars) - El método vanilla strip elimina los espacios en blanco o los caracteres mencionados en los lados izquierdo y derecho de la cadena.
  • lstrip(chars) - La 'l' en el nombre del método corresponde a la izquierda, y este método elimina los espacios en blanco o los caracteres mencionados a la izquierda de la cadena de entrada.
  • rstrip(chars) - La 'r' en el nombre del método corresponde a la derecha, y lo adivinó correctamente - quita los caracteres a la derecha de la cadena de entrada

Si se van a eliminar caracteres de la cadena, deben pasarse como argumento al método, digamos input.rstrip("abc"). Este es un argumento opcional, por defecto las funciones eliminan los espacios en blanco ya que ese es el uso más común.

Recortar/quitar espacios en blanco de cadenas

Ahora que tenemos claro de qué son capaces estos métodos, profundicemos en algunos ejemplos. Tenemos una cadena input y output. La variable input denota una cadena con espacios al final y al principio, mientras que la cadena output es una plantilla que podemos usar para resaltar estos espacios:

1
2
3
4
5
6
7
8
9
# trim.py
input = "   Stack Abuse   "
output = "|{}|"
# Remove leading spaces or spaces to the left
print("lstrip() Output:", output.format(input.lstrip()))
# Remove trailing spaces or spaces to the right
print("rstrip() Output:", output.format(input.rstrip()))
# Remove both trailing and leading spaces
print(" strip() Output:", output.format(input.strip()))

Una vez que strip() la entrada y agregamos ese resultado entre las tuberías (|), cualquier espacio en blanco que quede será muy notorio.

Ejecutar este código da como resultado:

1
2
3
4
$ python trim.py
lstrip() Output: |Stack Abuse   |
rstrip() Output: |   Stack Abuse|
 strip() Output: |Stack Abuse|

Recortar/eliminar caracteres especiales de cadenas

En lugar de eliminar solo los caracteres vacíos, no es raro eliminar un determinado carácter especial inicial y final. Pasemos un argumento de carácter al método strip():

1
2
3
4
5
6
7
8
9
# trim_chars.py
input = "   ~~ Stack Abuse ~~   "
output = "|{}|"
# Remove leading spaces or spaces to the left
print("lstrip() Output:", output.format(input.lstrip("~ ")))
# Remove trailing spaces or spaces to the right
print("rstrip() Output:", output.format(input.rstrip("~ ")))
# Remove both trailing and leading spaces
print(" strip() Output:", output.format(input.strip("~ ")))

Hemos pasado la tilde y un espacio en blanco ("~ ") como argumento de los métodos strip(), eliminando cualquier ocurrencia de cualquiera de ellos desde la izquierda, derecha y ambos lados de la cuerda. Vale la pena señalar que el orden de estos no importa y que el método strip () no realiza la coincidencia de patrones para eliminarlos. Es conceptualmente similar a llamar al método strip() dos veces, para cada carácter.

Ejecutar este código da como resultado:

1
2
3
4
$ python trim_chars.py
lstrip() Output: |Stack Abuse ~~   |
rstrip() Output: |   ~~ Stack Abuse|
 strip() Output: |Stack Abuse|

Uso de strip() en una serie Pandas

También podemos realizar los métodos strip() para la Serie de Pandas. Los espacios finales y los caracteres de las celdas individuales de la serie se pueden eliminar. Una cosa a tener en cuenta es que la serie debe convertirse en una serie de cadenas antes de realizar la operación strip().

Nota: Si eres nuevo en Pandas, lee nuestra Guía para principiantes de pandas para aprender más sobre la biblioteca y cómo para configurarlo. Una vez que Pandas esté instalado en su sistema, ¡puede seguir este ejemplo de código!

Considere el siguiente guión:

1
2
3
4
5
6
# strip_series.py
import pandas as pd

s = pd.Series(['1. Cell1.  ~', '2. Cell2!\n'])
print("Before strip():\n", s)
print("\nAfter strip():\n", s.str.strip('.\n!~ '))

Aquí, estamos creando una serie con celdas que contienen caracteres especiales y espacios finales. A través de series.str, podemos realizar un método en cada elemento de la Serie. Teniendo en cuenta el hecho de que se trata de cadenas, podemos ejecutar cualquier método de cadena.

Dicho esto, podemos realizar fácilmente un strip() en cada elemento de la secuencia:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
$ python strip_series.py
Before strip()
 0    1. Cell1.  ~
1     2. Cell2!\n
dtype: object
 
After strip()
 0    1. Cell1
1    2. Cell2
dtype: object

Conclusión

Eliminar (o recortar) los caracteres de una cadena puede ser muy útil al limpiar conjuntos de datos, archivos de texto con varias líneas o incluso las respuestas de la API. Los métodos básicos pero poderosos de Python también pueden funcionar en la serie Pandas.

Licensed under CC BY-NC-SA 4.0