Si tiene una hoja de cálculo de Excel desordenada con valores no válidos, entradas en blanco, duplicados u otros problemas, podría pensar que tiene que pasar horas limpiándola. En su lugar, puedes usar Python para automatizar estos pasos. Así es como.
Configurar un entorno Python
Instalación de los paquetes necesarios
Si aún no tiene configurado un entorno Python, es fácil de hacer. Si está en Windows, le recomiendo usar el Subsistema de Windows para Linux o WSL. Los tutoriales de Python tienden a asumir un entorno Linux o al menos un entorno similar a Unix, y será más fácil de seguir junto con otros tutoriales ya que no tendrá que traducir cosas como nombres de rutas.
Si no tienes WSL instalado, tendrás que hacerlo.
También querrás otro tipo de entorno encima de tu sistema. Si bien Python está incluido en muchos sistemas, incluidas casi todas las principales distribuciones de Linux, está destinado más a ejecutar scripts y otro software incluido que a sus propios programas. Dependiendo de la rapidez con la que un sistema operativo actualice su software, su versión de Python puede ser anterior.
También necesitarás instalar algunas bibliotecas sobre Python.
Hay varios entornos que te permiten instalar paquetes de Python, pero mi favorito es Pixi.
En una ventana de terminal de Linux, macOS o WSL, escriba:
curl -fsSL https://pixi.sh/install.sh | sh
Esto instalará Pixi en su máquina.
Con Pixi instalado, puede crear un entorno para sus paquetes o instalarlos globalmente. Esta será probablemente la mejor opción para este proyecto, ya que tendrás estas herramientas a tu alcance.
El paquete principal que usaremos es pandas, pero también querremos otros para este proyecto. NumPy es la base de la computación numérica con Python. También querremos instalar portátiles Jupyter. Esto nos dará una forma gráfica de ejecutar el código Python y le permitirá examinarlo más tarde. IPython es similar, pero funciona desde la terminal.
Instalemos estas herramientas en entornos globales.
pixi global install numpy pandas jupyter ipython
Obtener los datos en Python
Con nuestro entorno instalado, ahora podemos comenzar a limpiar nuestra desordenada hoja de cálculo.
Para este ejemplo, usaré una versión modificada de un conjunto de datos que encontré en Kaggle y que es específicamente para aprender a limpiar datos desordenados. Tiene muchos problemas, como datos faltantes y muchos «ERROR» o términos inconsistentes. Originalmente era un archivo .csv, pero lo guardé como un archivo Excel usando LibreOffice para demostrar cómo los pandas pueden manejar archivos Excel.
Lanzaré Jupyter:
jupyter notebook
Esto abrirá un navegador web, o lo haría si no estuviera usando WSL en Windows. Tengo que modificar la línea de comando para deshacerme del mensaje de error.
jupyter notebook –no-browser
Abriré uno de los enlaces en mi navegador web.
Normalmente uso un alias de shell para evitar todo esto.
A continuación, crearé un nuevo cuaderno y usaré Python como núcleo.
Me gusta poner un encabezado y una nota explicativa como celdas de Markdown.
En la primera celda de código, importaré las bibliotecas que voy a usar.
import numpy as np
import pandas as pd
Ahora leeré en el conjunto de datos desordenado.
cafe = pd.read_excel('/path/to/messy_data.xlsx')
Puedo examinar el conjunto de datos para que puedas tener una buena idea de los problemas:
cafe.head()
Eliminando valores faltantes
No los extrañarás
Lo más fácil de hacer para limpiar un conjunto de datos es eliminar los valores faltantes. Pandas DataFrames tiene un método integrado para hacer eso, dropna. Configurar la variable de datos en este método editará el DataFrame en su lugar:
cafe = cafe.dropna()
Eliminar entradas duplicadas
No duplique los datos
Ahora queremos eliminar cualquier entrada duplicada. Pandas tiene un método integrado llamado drop_duplicates que funciona de manera similar a dropna:
cafe = cafe.drop_duplicates()
Esto editará nuevamente nuestro DataFrame para eliminar las entradas duplicadas.
Modificando columnas
Deshacerse de los valores no válidos
Todavía tenemos algunos problemas. Muchas entradas en estas columnas tienen algo como «ERROR» o «DESCONOCIDO». Probablemente no los queramos.
Es fácil deshacerse de ellos. Primero crearemos una matriz de las columnas que queremos filtrar:
columns = ['Item','Quantity','Price Per Unit','Total Spent','Payment Method', 'Location', 'Transaction Date']
Luego crearemos un bucle for que recorrerá las columnas y eliminará los campos que contengan «ERROR» o «DESCONOCIDO»:
for i in columns:
cafe = cafe[cafe[i] != "ERROR"]
cafe = cafe[cafe[i] != "UNKNOWN"]
Las declaraciones en los bucles de Python deben tener sangría y Python cuenta cuatro espacios como sangría.
Lo que hace ese bucle es seleccionar cada valor de la columna que no sea igual a «ERROR» o «DESCONOCIDO» y lo guarda en su lugar.
Asegúrese de examinar su DataFrame con los métodos head o tail para ver el efecto de su cambio. Si hizo algo que no deseaba, puede volver a cargar los datos originales e intentarlo nuevamente.
Esto le ahorró mucho tiempo que habría tenido que revisar todo esto en Excel, incluso ejecutando una operación de búsqueda y reemplazo.
Puede ejecutar el comando data.head() nuevamente para ver los resultados.
Volver a colocar los datos en la hoja de cálculo de Excel
Es fácil convertir un DataFrame de pandas nuevamente a Excel
Una vez limpios los datos, puede volver a guardarlos en una hoja de cálculo de Excel. Puede utilizar el método to_excel del DataFrame
data.to_excel('/path/to/cleaned_data.xlsx')
Es fácil limpiar datos de Excel en Python
Dedicar un poco de tiempo a aprender Python y un poco de pandas puede ahorrar horas que podrían desperdiciarse editando hojas de cálculo individualmente. Python y hojas de cálculo como Excel forman una buena pareja: Excel para editar y formatear datos, y Python para limpiar y extraer información más potente.
- SO
-
Windows, macOS, iPhone, iPad, Android
- Marca
-
microsoft
- Precio
-
$100/año
- Desarrolladores
-
microsoft
- Prueba gratuita
-
1 mes
Microsoft 365 incluye acceso a aplicaciones de Office como Word, Excel y PowerPoint en hasta cinco dispositivos, 1 TB de almacenamiento OneDrive y más.
