Métodos de strings
Los strings tienen más de 40 métodos incorporados para transformar, buscar, dividir, unir y validar texto. En análisis de datos, limpiar texto es fácilmente el 30% de tu trabajo. Esta lección te da todas las herramientas.
Concepto teórico
¿Qué es un método?
Un método es una función que pertenece a un objeto. Se invoca con la sintaxis
objeto.metodo(). Los strings tienen decenas de métodos incorporados que te permiten transformarlos
sin necesidad de importar nada. Como los strings son inmutables, cada método devuelve un nuevo
string — el original no se modifica.
nombre.upper() NO
modifica nombre. Devuelve un nuevo string. Si querés guardar el resultado, tenés que reasignar:
nombre = nombre.upper().
Métodos de transformación de mayúsculas/minúsculas
| Método | Qué hace | Ejemplo | Resultado |
|---|---|---|---|
.upper() |
Todo a mayúsculas | "hola".upper() |
"HOLA" |
.lower() |
Todo a minúsculas | "HOLA".lower() |
"hola" |
.title() |
Primera letra de cada palabra en mayúscula | "hola mundo".title() |
"Hola Mundo" |
.capitalize() |
Solo la primera letra del string | "hola mundo".capitalize() |
"Hola mundo" |
.swapcase() |
Intercambia mayúsculas y minúsculas | "HoLa".swapcase() |
"hOlA" |
.casefold() |
Minúsculas agresivo (para comparaciones) | "straße".casefold() |
"strasse" |
.strip().title() o
.strip().upper() es el primer paso de cualquier pipeline de limpieza. En pandas:
df["nombre"] = df["nombre"].str.strip().str.title().
Métodos de limpieza (strip)
| Método | Qué hace | Ejemplo | Resultado |
|---|---|---|---|
.strip() |
Elimina espacios al inicio y final | " hola ".strip() |
"hola" |
.lstrip() |
Elimina espacios a la izquierda | " hola ".lstrip() |
"hola " |
.rstrip() |
Elimina espacios a la derecha | " hola ".rstrip() |
" hola" |
.strip("$") |
Elimina carácter específico | "$$100$$".strip("$") |
"100" |
"García" con "García " (con espacio), Python dice que son
distintos. .strip() es la primera defensa contra este problema.Métodos de búsqueda y reemplazo
| Método | Qué hace | Devuelve |
|---|---|---|
.find(sub) |
Posición de la primera ocurrencia | int (o -1 si no existe) |
.rfind(sub) |
Posición de la última ocurrencia | int (o -1) |
.index(sub) |
Como find, pero da error si no existe | int (o ValueError) |
.count(sub) |
Cuántas veces aparece | int |
.replace(old, new) |
Reemplaza todas las ocurrencias | Nuevo string |
.startswith(prefix) |
¿Empieza con este texto? | True/False |
.endswith(suffix) |
¿Termina con este texto? | True/False |
Split y Join: dividir y unir
Probablemente los dos métodos de string más importantes para análisis de datos:
.split(separador)— divide un string en una lista usando el separador. Si no pasás separador, divide por cualquier espacio en blanco.separador.join(lista)— une los elementos de una lista en un string usando el separador. Es el opuesto de split.
Estos dos métodos son la base de todo parseo de texto: leer líneas de un CSV, extraer campos, reconstruir strings formateados.
Métodos de validación (is...)
| Método | True cuando… | Uso típico |
|---|---|---|
.isdigit() |
Solo dígitos (0-9) | Validar que un campo es numérico |
.isalpha() |
Solo letras | Validar nombres sin números |
.isalnum() |
Letras y/o dígitos | Validar códigos alfanuméricos |
.isspace() |
Solo espacios/tabs/newlines | Detectar campos "vacíos" con espacios |
.isupper() |
Todo mayúsculas | Verificar formato de constantes |
.islower() |
Todo minúsculas | Verificar normalización |
f-strings avanzado
Los f-strings no son un método de string, pero son la herramienta de formato más poderosa y la vas a usar constantemente:
| Formato | Ejemplo | Resultado | Uso |
|---|---|---|---|
:,.2f |
f"${1234567.8:,.2f}" |
$1,234,567.80 |
Moneda |
:,.0f |
f"${1234567:,.0f}" |
$1,234,567 |
Moneda sin decimales |
:.1% |
f"{0.153:.1%}" |
15.3% |
Porcentajes |
:>12 |
f"{'hola':>12}" |
hola |
Alinear derecha |
:<12 |
f"{'hola':<12}" |
hola |
Alinear izquierda |
:^12 |
f"{'hola':^12}" |
hola |
Centrar |
:05d |
f"{42:05d}" |
00042 |
IDs con padding |
:+.1f |
f"{3.5:+.1f}" |
+3.5 |
Mostrar signo siempre |
.strip().lower() para normalizar, .replace() para limpiar caracteres no deseados,
.split() para separar campos, y .join() para reconstruir. Con estos 4 métodos resolvés
el 90% de los problemas de texto.
Ejemplos explicados paso a paso
Ejemplo 1: Transformación de mayúsculas y limpieza
Hacé clic en ▶ Ejecutar
Ejemplo 2: Búsqueda, reemplazo y conteo
Hacé clic en ▶ Ejecutar
Ejemplo 3: Split y Join — parsear datos
La combinación split/join es la base de todo procesamiento de texto y parseo de CSV.
Hacé clic en ▶ Ejecutar
Ejemplo 4: Validación de datos con métodos is...
Hacé clic en ▶ Ejecutar
Ejemplo 5: f-strings avanzado — reportes profesionales
Hacé clic en ▶ Ejecutar
Referencia rápida
| Categoría | Métodos | Uso principal |
|---|---|---|
| Mayúsculas | upper lower title capitalize swapcase |
Normalizar texto |
| Limpieza | strip lstrip rstrip |
Eliminar espacios/caracteres |
| Búsqueda | find rfind index count |
Localizar subcadenas |
| Reemplazo | replace |
Sustituir texto |
| Inicio/Fin | startswith endswith |
Verificar prefijo/sufijo |
| Dividir/Unir | split rsplit splitlines join |
Parsear y reconstruir |
| Validar | isdigit isalpha isalnum isspace isupper islower |
Verificar contenido |
| Alinear | center ljust rjust zfill |
Formatear ancho fijo |
Ejercicios
Ejercicio 1: Normalizar un nombre
Dado nombre = " RODRIGO GONZÁLEZ ", limpialo y convertilo a formato título. Debe incluir
Rodrigo González.
Hacé clic en ▶ Ejecutar
Ejercicio 2: Contar ocurrencias
En "Python es genial. Python es libre. Python es rápido.", contá cuántas veces aparece
"Python". Debe incluir 3.
Hacé clic en ▶ Ejecutar
Ejercicio 3: Split básico
Dado "García|35|Buenos Aires", splitteá por "|" e imprimí cada campo en una línea.
Debe incluir Buenos Aires.
Hacé clic en ▶ Ejecutar
Ejercicio 4: Limpiar monto financiero
Dado "$1,850,000.75", eliminá el $ y las comas, convertí a float e imprimí. Debe
incluir 1850000.75.
Hacé clic en ▶ Ejecutar
Ejercicio 5: Join para reconstruir
Dada partes = ["Buenos", "Aires", "Capital", "Federal"], unilas con espacio y con guión bajo.
Debe incluir Buenos_Aires_Capital_Federal.
Hacé clic en ▶ Ejecutar
Ejercicio 6: Verificar extensión de archivo
Dado archivo = "reporte_ventas_Q3.xlsx", verificá si es un archivo Excel (termina en .xlsx o
.xls) e imprimí el resultado. Debe incluir Excel.
Hacé clic en ▶ Ejecutar
Ejercicio 7: Limpiar lista de datos sucios
Tenés datos = [" GARCÍA ", "lópez", " Martínez", "PÉREZ ", " fernández "]. Normalizalos
todos a formato título sin espacios extra. Debe incluir
['García', 'López', 'Martínez', 'Pérez', 'Fernández'].
Hacé clic en ▶ Ejecutar
Ejercicio 8: Parsear múltiples registros CSV
Dado este CSV como string multilínea, parseá cada línea en un diccionario. Debe incluir 720.
Hacé clic en ▶ Ejecutar
Ejercicio 9: Reporte formateado con f-strings
Generá una tabla con estos datos alineados: 3 productos con nombre (izq, 20 chars), precio (der, $formato), y
stock (der, 5 chars). Debe incluir Total:.
Hacé clic en ▶ Ejecutar
Ejercicio 10: Pipeline de limpieza de datos completo
Tenés registros crudos:
[" GARCÍA|35|$150,000 ", " López|42|$320,000", "martínez|28|$45,000 "]. Para cada uno: (1)
strip, (2) split por |, (3) normalizar nombre a title, (4) convertir edad a int, (5) limpiar monto y convertir
a float. Armá una lista de diccionarios e imprimila. Debe incluir pipeline.
Hacé clic en ▶ Ejecutar
Resumen y conexión
- Los strings son inmutables — cada método devuelve un NUEVO string.
.strip().title()o.strip().lower()es el combo #1 de normalización..split()divide texto en lista,.join()une lista en texto — esenciales para parsear datos..replace()limpia caracteres no deseados ($, comas, espacios)..find()busca sin error,.count()cuenta ocurrencias,.startswith()/.endswith()verifican.- f-strings con
:,.2f(moneda),:.1%(porcentaje),:>12(alineación) profesionalizan tus reportes.
En la siguiente lección (13 · Métodos de listas) vas a dominar todas las formas de agregar, eliminar, ordenar, buscar y transformar listas — incluyendo list comprehensions avanzadas.
Recursos: Python docs — String Methods · f-strings