E+

ChakiArt

Excel · Datos · Automatización

Volver a Recursos
Excel · Python en Excel · Automatización

Clasifica textos automáticamente con Python en Excel

Partial Matching para grandes volúmenes de datos

Aprende a clasificar automáticamente conceptos de texto desordenados utilizando Python directamente dentro de Excel. Mediante Partial Matching podemos comparar cada registro contra un catálogo de términos y asignarle una categoría.

Python en ExcelPartial MatchingAutomatización9:15 min

El problema

Los textos reales casi nunca vienen perfectamente organizados

Cuando trabajamos con miles de registros, es común encontrar conceptos que contienen códigos, referencias, números y texto adicional.

El objetivo es reconocer una palabra o expresión dentro de cada concepto y utilizarla para asignar automáticamente una categoría.

Texto original

PAGO TARJETA UBER EATS 4582 MX

El concepto contiene más información que la palabra que realmente nos interesa.

Resultado esperado

Comida

Python identifica UBER EATS dentro del texto y devuelve la categoría correspondiente.

Concepto clave

¿Qué significa Partial Matching?

En lugar de exigir que dos textos sean exactamente iguales, buscamos si una palabra o expresión aparece dentro de un texto más grande.

"UBER EATS" in "PAGO UBER EATS 4582"

El concepto completo no tiene que ser igual a UBER EATS. Basta con que el término aparezca dentro del texto.

Cómo funciona

El proceso completo en cuatro pasos

01

Leer las tablas

Python obtiene directamente los datos almacenados en las tablas de Excel mediante xl().

02

Priorizar coincidencias

Ordenamos el catálogo para evaluar primero los términos más específicos.

03

Crear la lógica

Definimos una función que revisará cada concepto y buscará coincidencias parciales.

04

Clasificar todos los registros

apply() ejecuta nuestra función sobre cada concepto de la base de datos.

Paso 1

xl() conecta Python con nuestras tablas de Excel

Python en Excel incluye la función xl(), que permite tomar información directamente desde rangos y tablas del libro.

df = xl("tblBanco[#Todo]", headers=True)
catalogo = xl("tblCategorias[#Todo]", headers=True)
tblBanco

Contiene los conceptos que queremos clasificar.

tblCategorias

Funciona como catálogo de términos y categorías.

Al trabajar directamente con tablas de Excel, podemos mantener nuestros datos y nuestro catálogo dentro del mismo libro y procesarlos con Python.

Paso 2

Primero buscamos los términos más específicos

Este paso es fundamental cuando nuestro catálogo contiene términos que pueden formar parte de expresiones más largas.

catalogo["Longitud"] = catalogo["Palabra"].astype(str).str.len()

catalogo = catalogo.sort_values(
    by="Longitud",
    ascending=False
)
UBER EATS

Es un término más específico y debería evaluarse primero.

Categoría

Comida

UBER

Es más general y puede evaluarse después.

Categoría

Transporte

¿Por qué importa el orden?

Si buscamos primero UBER, un concepto como UBER EATS podría clasificarse como Transporte antes de que Python tenga oportunidad de comprobar la coincidencia más específica.

Paso 3

Creamos nuestra propia función de clasificación

Con def podemos encapsular la lógica que queremos ejecutar para cada concepto.

def clasificar(texto):
    texto = str(texto).lower()

    for _, fila in catalogo.iterrows():
        palabra = str(fila["Palabra"]).lower()

        if palabra in texto:
            return fila["Categoria"]

    return "Otros"
def

Crea una función reutilizable llamada clasificar.

for

Recorre uno por uno los términos almacenados en el catálogo.

in

Comprueba si cada término aparece dentro del concepto.

Si encuentra una coincidencia, devuelve la categoría asociada. Si ningún término coincide, podemos devolver una categoría genérica como "Otros".

Paso 4

apply() lleva nuestra función a todos los registros

Hasta este momento tenemos una función capaz de clasificar un solo concepto. apply() permite ejecutar esa lógica sobre toda la columna.

df["Categoria"] = df["Concepto"].apply(clasificar)

df

De un registro a cientos o miles

La misma lógica se ejecuta automáticamente sobre cada fila. Esa es la ventaja principal frente a revisar y clasificar los conceptos manualmente.

Resultado

Del texto desordenado a una categoría

Concepto originalCoincidenciaCategoría
PAGO UBER EATS 4582UBER EATSComida
VIAJE UBER 8391UBERTransporte
COMPRA HOME DEPOT SUC 21HOME DEPOTFerretería
NETFLIX.COM MEXICONETFLIXEntretenimiento

Los ejemplos ilustran la lógica de Partial Matching utilizada en el tutorial.

Python utilizado

Cinco piezas importantes del ejercicio

xl()

Lee rangos y tablas del libro de Excel.

sort_values()

Ordena el catálogo para priorizar los términos que deseemos.

def

Nos permite crear nuestra propia función de clasificación.

in

Comprueba si un texto aparece dentro de otro.

apply()

Ejecuta nuestra función sobre todos los registros de una columna.

Aplicaciones

No sirve solamente para un tipo de datos

La misma técnica puede adaptarse a numerosos escenarios donde necesitamos interpretar o clasificar grandes volúmenes de texto.

Movimientos bancarios

Inventarios y descripciones de productos

Pedidos y conceptos de venta

Tickets de soporte

Incidencias operativas

Comentarios de clientes

Qué debes tener en cuenta

Partial Matching depende de un buen catálogo

Python puede automatizar la clasificación, pero el resultado depende de los términos que definamos y del orden en que los evaluemos.

Términos demasiado generales

Una palabra muy amplia puede producir coincidencias que realmente pertenecen a otra categoría.

Prioridad de coincidencias

Cuando varias palabras pueden coincidir con el mismo concepto, debemos establecer cuál tiene prioridad.

Variaciones del texto

Abreviaturas, errores de escritura o nombres completamente distintos pueden necesitar términos adicionales en el catálogo.

Catálogo mantenible

Podemos agregar nuevos términos al catálogo conforme aparezcan conceptos que todavía no clasificamos correctamente.

Material del tutorial

Reproduce el ejercicio en tu propio Excel

Tutorial completo

Sigue paso a paso la construcción del clasificador mediante Partial Matching con Python en Excel.

Ver video · 9:15

Archivo de práctica

Descarga el archivo utilizado en el tutorial y prueba la clasificación con tus propios conceptos.

Abrir archivos

Python también puede formar parte de tu flujo de trabajo en Excel

Este ejemplo muestra cómo podemos pasar de utilizar únicamente fórmulas a incorporar Python cuando necesitamos procesar grandes cantidades de información o construir reglas más flexibles.

Explorar más recursos