Skip to content
Empieza gratis

¿Cómo encuentras filas repetidas que inflan un total?

Encuentra las filas repetidas del archivo, mide cuánto inflan el total y decide si quitarlas.

Curso gratis. Tu Maestro, una IA, .

Las dos páginas anteriores trataban de lo que no se contó. Esta trata de lo contrario: lo que se contó dos veces.

Imagina que le preguntas a tu asistente "¿cuánto vendió Zapopan en marzo?" y te responde "$27,644". Lo recalculas con el filtro del módulo 1 y te da $27,644. Coincide. Y aun así está inflado: en el archivo, tres tickets de Zapopan tienen productos capturados dos veces, fila por fila idénticas. Tu cuenta y la de la IA coinciden porque las dos sumaron las mismas filas repetidas.

Las filas repetidas llegan por caminos muy de oficina: alguien exportó el reporte dos veces y pegó uno debajo del otro, una sincronización se corrió dos veces, o dos personas capturaron el mismo ticket. Una IA puede no buscarlas si no se lo pides: para el código, cada fila es un dato más.

Buscarlas cuesta tres líneas.

Python
data.duplicated().sum()                  # cuántas filas son copia exacta de una anterior
data[data.duplicated(keep=False)]        # todas las filas que tienen copia, la original incluida
limpio = data.drop_duplicates()          # una tabla nueva, sin las copias
duplicated() compara todas las columnas: una fila cuenta como repetida solo si es idéntica en todo.

Cómo leerlas:

  • data.duplicated() contesta, para cada fila, ¿es idéntica a una que ya apareció arriba? La primera vez que aparece una fila dice que no; la copia dice que sí. Con .sum() cuentas cuántas copias hay.
  • keep=False cambia la pregunta a ¿esta fila tiene alguna gemela?, así que marca la original y la copia. Sirve para ver las parejas juntas.
  • drop_duplicates() arma una tabla nueva sin las copias y se queda con la primera de cada pareja. No toca data: el original sigue igual por si necesitas regresar.

La documentación de pandas describe estos dos parámetros. subset permite comparar solo algunas columnas, y keep decide cuál de las repetidas se queda. ¿Qué diferencia hay entre duplicated() y drop_duplicates()?

Cuánto infla el total de Zapopan

Ejemplo resuelto · 4 pasos

La IA dijo que Zapopan vendió $27,644 en marzo. Quieres saber si hay filas repetidas en el archivo y cuánto cambian ese número. Intenta cada paso antes de abrirlo.

Piensa el siguiente paso por tu cuenta y luego ábrelo para comparar.

  1. Encuentras filas idénticas

  2. ¿Pueden repetirse de verdad?

    Por ejemplo, dos escaneos del mismo producto en un ticket

    • Camino 1 de 2: No

      1. Quítalas con drop_duplicates

      Sigue en: Reporta cuántas filas y cuánto dinero

    • Camino 2 de 2: Puede ser

      1. Pregunta a quien captura los datos

        Si sí pueden repetirse, déjalas

      Sigue en: Reporta cuántas filas y cuánto dinero

  3. Reporta cuántas filas y cuánto dinero

Quitar o dejar, lo que importa es decir cuántas filas tocaste y cuánto cambió el total.

Idéntica no siempre quiere decir copia

Antes de borrar, vuelve a la primera pregunta del curso: ¿qué es una fila? En este archivo una fila es un producto dentro de un ticket. Si la caja registra cada escaneo por separado, alguien que compra dos brochas iguales en dos pasadas genera dos filas idénticas, y las dos son ventas reales. Si la caja junta los productos iguales en una sola fila con su cantidad, dos filas idénticas sí son una copia.

El archivo no te lo dice; lo sabe quien conoce el sistema. Aquí, el ticket T-1033 está repetido completo, como si se hubiera pegado dos veces. En T-1011, T-1093 y T-1079 solo se repiten uno o dos productos, y eso, visto solo, podría ser una copia o dos escaneos. Imagina que preguntas en sistemas y te dicen que la caja junta los productos iguales en una sola fila con su cantidad: entonces dos filas idénticas no pueden ser dos ventas, y las seis son copias. Aun así, en un reporte escribe lo que hiciste: "quité 6 filas idénticas, $937; sin ellas el total es $117,259". Así quien lo lea puede deshacer tu decisión si sabe algo que tú no. ¿Cómo sé si dos filas iguales son una copia o dos ventas?

Inténtalo

Esta vez el código casi no viene escrito. Junta las tres piezas que ya conoces: quitar copias, filtrar por sucursal y filtrar por estado.

Calcula lo que vendió Zapopan en marzo contando solo ventas pagadas y sin filas repetidas. Imprime cuántas filas te quedan, cuánto suman y cuántos tickets distintos son. Terminas cuando el total es 24340.0 y te quedan 28 tickets.

Calcula lo que vendió Zapopan en marzo contando solo ventas pagadas y sin filas repetidas. Imprime cuántas filas te quedan, cuánto suman y cuántos tickets distintos son. Terminas cuando el total es 24340.0 y te quedan 28 tickets.

Ejecuta tu código para ver lo que imprime y el valor de su última expresión. Cada ejecución empieza de nuevo.

Listo para ejecutar tu código.

Ejecuta tu código para ver su salida aquí.

Datos: ventas-marzo, 312 filas

Enter guarda una celda y Escape la deja como estaba. Deja una celda vacía para un valor faltante.

Los datos del ejercicio, "ventas-marzo". Tus cambios corren con tu código.
FilaQuitar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Página 1 de 16

Ejecútalo tú

De $27,644 a $24,340. La diferencia no viene de una sola cosa: $653 son copias y el resto son ventas canceladas. Si solo hubieras revisado una de las dos, el número seguiría inflado. Por eso las tres preguntas van juntas, y en el módulo 5 las haces sobre una respuesta completa. Revisa conmigo cuánto viene de copias y cuánto de canceladas.

Comprueba lo que sabes: En un archivo de ventas encuentras dos filas idénticas: mismo ticket, mismo producto, misma cantidad y mismo importe. ¿Qué haces?