¿Por qué limpiar los datos con pandas en lugar de hacerlo a mano?

Limpiar datos en pandas merece la pena porque cada paso queda registrado y puede volver a ejecutarse en segundos sobre la exportación del mes siguiente, mientras que las correcciones manuales en una hoja de cálculo son lentas, fáciles de olvidar e imposibles de auditar.

Imagine un grupo ficticio de centros de jardinería con cuatro establecimientos, Fernhill Gardens. Tomasz, el analista financiero, recibe cada mes un CSV de pedidos en línea. En la muestra siguiente, el mismo pedido aparece dos veces, el nombre del establecimiento está escrito de varias formas, los importes incluyen un símbolo de moneda y una coma, las fechas mezclan formatos que empiezan por el día y por el año, y los valores ausentes aparecen como celdas vacías, 'N/A' y '-'. Corregirlo a mano lleva un día y los totales nunca coinciden del todo con el informe del proveedor de pagos.

order_idsiteorder_dateamountpostcode
10231Leeds03/11/2026£1,240.00LS6
10231Leeds03/11/2026£1,240.00LS6
10232leeds2026-11-0486.50No corresponde
10233YORK05/11/2026-YO1
10234Harrogate142

¿Cómo se limpian datos con pandas paso a paso?

Limpie los datos en pandas cargándolos con los indicadores de valores faltantes definidos, inspeccionándolos, normalizando el texto, convirtiendo números y fechas, eliminando duplicados, decidiendo qué hacer con los valores que aún faltan y, por último, contrastando el resultado con un total fiable. Seguir este orden evita que una corrección deshaga otra.

1. Cargue los datos indicando los marcadores de valores faltantes

La función read_csv de pandas lee el archivo y carga los datos en un DataFrame. Su argumento na_values permite indicar cadenas adicionales, como 'N/A' y '-', que deben tratarse como valores faltantes, además de las que pandas ya reconoce de forma predeterminada, como los campos vacíos. Declararlas aquí evita tener que buscarlas más adelante.

2. Revise antes de cambiar nada

Examine las primeras filas con head, los tipos de columnas y los recuentos de valores no ausentes con info, y el número de valores ausentes por columna combinando isna con sum. Anote lo que encuentre: en Fernhill, amount se almacena como texto y order_date tiene formatos mezclados.

3. Estandarice el texto

Use los métodos de cadenas de texto en una columna: str.strip elimina los espacios iniciales y finales, y str.lower o str.title unifica el uso de mayúsculas y minúsculas, de modo que ' Leeds', 'leeds ' y 'LEEDS' se conviertan en una misma sede. Después, enumere los valores únicos con unique para detectar las variantes de escritura restantes.

4. Convierta los números

Elimine el símbolo de moneda y la coma de los miles con str.replace y, después, convierta los valores con to_numeric. Si establece el argumento errors en coerce, todo lo que no se pueda interpretar se convierte en un valor ausente en lugar de detener el proceso, de modo que pueda contar y revisar esas filas en vez de perderlas sin aviso.

5. Convierta las fechas

to_datetime convierte texto en fechas válidas. Si hay formatos mezclados, indique un formato explícito cuando pueda, o configure dayfirst para fechas de estilo británico, y establezca errors en coerce para que las fechas que no puedan interpretarse se conviertan en NaT, el marcador de pandas para una fecha ausente. Tenga en cuenta que dayfirst es una preferencia, no una regla estricta, así que compruebe los resultados.

6. Elimine los duplicados

drop_duplicates elimina las filas repetidas. De forma predeterminada, una fila solo se considera duplicada si todas sus columnas coinciden; el argumento subset permite identificar duplicados a partir de columnas concretas, como order_id, y keep determina si se conserva la primera o la última copia.

7. Decida qué hacer con las carencias restantes

dropna elimina las filas con valores faltantes, pero, de forma predeterminada, elimina una fila si falta un valor en cualquier columna. Use el argumento subset para eliminar solo las filas en las que falten datos que realmente necesita, como amount, o fillna para rellenar un dato faltante con un valor especificado. Después, use astype para establecer los tipos definitivos de las columnas, por ejemplo, un tipo categórico para site.

¿Cómo se comparan una pasada de limpieza deficiente y una mejorada?

El procedimiento deficiente carga el archivo con read_csv, llama a dropna sin argumentos y después a drop_duplicates sin argumentos. Como el código postal suele estar vacío, dropna elimina una gran parte de los pedidos válidos y, como ' Leeds' y 'leeds ' siguen siendo distintos, quedan algunos duplicados. Los ingresos resultan muy inferiores a los reales y nadie sabe qué filas se eliminaron.

El procesamiento mejorado declara 'N/A' y '-' como valores faltantes al cargar los datos, elimina los espacios al principio y al final de site y pone en mayúscula la inicial de cada palabra, convierte amount con to_numeric después de quitar '£' y las comas, convierte order_date con dayfirst y coerce, elimina los duplicados según order_id conservando el primero y descarta solo las filas sin amount. Después imprime cuántas filas eliminó cada paso y compara los ingresos totales con el informe del proveedor de pagos. Ahora Tomasz puede explicar cada diferencia.

¿Cómo se comprueba que la limpieza de datos funcionó?

Compruebe la limpieza de datos contando las filas antes y después de cada paso, comparando un total clave con una fuente independiente y revisando las filas cuyos valores se convirtieron de forma forzada en datos faltantes. Ejecute info de nuevo para confirmar los tipos de las columnas y enumere los valores únicos de categorías como la sede. Si un paso eliminó más filas de las previstas, revíselas antes de continuar.

¿Cómo puede un asistente de IA ayudar a limpiar datos con pandas?

Un asistente de IA puede redactar los pasos de limpieza si usted describe cada columna, sus problemas y la regla que desea aplicar, y puede explicar funciones que no conozca. Describa la estructura con valores de ejemplo inventados en lugar de pegar datos reales de clientes, como nombres, direcciones o códigos postales completos. Pídale que indique el número de filas después de cada paso y compruebe cada argumento de las funciones que utiliza en la documentación oficial de pandas, porque los asistentes a veces sugieren opciones que no existen o que han cambiado entre versiones.

¿Cuáles son los errores habituales al limpiar datos con pandas?

El error más común es llamar a dropna sin argumentos y perder filas que estaban bien salvo por una columna opcional. Otros: eliminar duplicados antes de normalizar el texto, convertir fechas sin comprobar el orden del día y el mes, sobrescribir el archivo original y no comparar nunca el total de los datos depurados con una cifra fiable.

¿Dónde se sitúa esta lección en Tosheo.ai?

Esta es una lección de programación de la categoría de ciencia y análisis de datos del curso de ciencia de datos. Todas las materias de Tosheo.ai empiezan con conceptos y práctica sin código, y las lecciones de programación son un itinerario opcional para profundizar: tras registrarse, en la versión práctica completa de esta lección escribirá y ejecutará cada paso de limpieza en Python con pandas, con una evaluación basada en una guía de criterios. Si no conoce Python, empiece por el curso de Python. Desarrolla habilidades prácticas; no es un programa intensivo ni ofrece una garantía de empleo.

Fuentes y alcance

Documentación de pandas: read_csv (consultado el 19 October 2026) ↗

Guía de usuario de pandas: trabajar con datos faltantes (consultado el 19 October 2026) ↗

Documentación de pandas: DataFrame.dropna (consultado el 19 October 2026) ↗

Documentación de pandas: DataFrame.drop_duplicates (consultado el 19 October 2026) ↗

Documentación de pandas: DataFrame.astype (consultado el 19 October 2026) ↗

Documentación de pandas: to_numeric (consultado el 19 October 2026) ↗

Documentación de pandas: to_datetime (consultado el 19 October 2026) ↗

Documentación de pandas: Series.str.strip (consultado el 19 October 2026) ↗