Python, pandas y resolviendo tres problemas del mundo de Excel

Excel es una herramienta de análisis de datos extremadamente común. Es fácil aprender a trabajar con él, está en casi todas las computadoras, y quien lo haya dominado puede resolver problemas bastante complejos con él. Python a menudo se considera una herramienta cuyas capacidades son casi ilimitadas, pero que es más difícil de dominar que Excel. El autor del material, cuya traducción publicamos hoy, quiere hablar sobre la solución usando Python de las tres tareas que generalmente se resuelven en Excel. Este artículo es una introducción a Python para aquellos que conocen bien Excel.



Carga de datos


Comencemos importando la biblioteca de Python pandasy cargando datos en marcos de datos que se almacenan en hojas salesy stateslibros de Excel. Le daremos los mismos nombres a los marcos de datos correspondientes.

import pandas as pd
sales = pd.read_excel('https://github.com/datagy/mediumdata/raw/master/pythonexcel.xlsx', sheet_name = 'sales')
states = pd.read_excel('https://github.com/datagy/mediumdata/raw/master/pythonexcel.xlsx', sheet_name = 'states')

Ahora usaremos el método del .head()marco de datos salespara mostrar los elementos al comienzo del marco de datos:

print(sales.head())

Compare lo que se mostrará con lo que puede ver en Excel.


Comparación de la apariencia de la salida de datos en Excel con la apariencia de la salida de datos del marco de datos de pandas

Aquí puede ver que los resultados de visualizar datos del marco de datos son muy similares a lo que puede ver en Excel. Pero hay algunas diferencias muy importantes:

  • La numeración de filas en Excel comienza en 1, y en pandas el número (índice) de la primera fila es 0.
  • En Excel, las columnas tienen letras que comienzan con una letra A, y en pandas, los nombres de las columnas corresponden a los nombres de las variables correspondientes.

Continuaremos estudiando las capacidades de los pandas que nos permiten resolver problemas que Excel suele resolver.

Implementación de la funcionalidad Excel Excel IF en Python


Excel tiene una función muy conveniente IFque permite, por ejemplo, escribir algo en una celda, basándose en verificar lo que hay en otra celda. Suponga que desea crear una nueva columna en Excel, cuyas celdas nos dirán si los valores en las celdas correspondientes en la columna exceden 500 B. En Excel, Epuede asignar un encabezado a dicha columna (en nuestro caso, una columna ) MoreThan500escribiendo el texto correspondiente en la celda E1. Después de eso, en la celda E2, puede ingresar lo siguiente:

=IF([@Sales]>500, "Yes", "No")


Uso de la función IF en Excel

Para hacer lo mismo con los pandas, puede usar la comprensión de la lista:

sales['MoreThan500'] = ['Yes' if x > 500 else 'No' for x in sales['Sales']]


Incluir inclusiones en Python: si el valor actual es más de 500, Sí se incluye en la lista; de lo contrario, las

inclusiones No List son una excelente herramienta para resolver tales problemas, lo que simplifica el código al reducir la necesidad de construcciones complejas como if / else. El mismo problema se puede resolver con if / else, pero el enfoque propuesto ahorra tiempo y hace que el código sea un poco más limpio. Los detalles sobre la inclusión de la lista se pueden encontrar aquí .

Implementando la funcionalidad Excel BUSCARV en Python


En nuestro conjunto de datos, en una de las hojas de Excel, hay nombres de ciudades y, por otro, los nombres de estados y provincias. ¿Cómo saber exactamente dónde se encuentra cada ciudad? Una función de Excel es adecuada para esto VLOOKUP, con la que puede vincular los datos de dos tablas. Esta función funciona según el principio de la unión izquierda, cuando se guarda cada registro del conjunto de datos ubicado en el lado izquierdo de la expresión. Usando la función VLOOKUP, sugerimos que el sistema busque un valor específico en una columna dada de una hoja específica, y luego devuelva un valor que es un número específico de columnas a la derecha del valor encontrado. Así es como se ve:

=VLOOKUP([@City],states,2,false)

Establecemos el salesencabezado de la columna en la hoja a Fmedida que Stateutilizamos la función VLOOKUPpara completar las celdas de esta columna con los nombres de los estados y provincias en los que se encuentran las ciudades.


Usando la función BUSCARV en Excel

En Python, puede hacer lo mismo usando el métodomergede pandas. Toma dos marcos de datos y los combina. Para resolver este problema, necesitamos el siguiente código:

sales = pd.merge(sales, states, how='left', on='City')

Analicémoslo:

  1. El primer argumento del método mergees el marco de datos original.
  2. El segundo argumento es el marco de datos en el que estamos buscando valores.
  3. El argumento howindica exactamente cómo queremos unir los datos.
  4. El argumento onapunta a la variable por la cual se debe realizar la conexión (aquí todavía puede usar los argumentos left_ony right_on, si es necesario, si los datos que nos interesan en diferentes marcos de datos tienen un nombre diferente).

Tablas de resumen


Las tablas dinámicas son una de las características más potentes de Excel. Estas tablas le permiten extraer rápidamente información valiosa de grandes conjuntos de datos. Cree una tabla dinámica de Excel que muestre información sobre las ventas totales de cada ciudad.


Crear una tabla dinámica en Excel

Como puede ver, para crear dicha tabla, simplemente arrastre el campoCitya la secciónRowsy el campoSalesa la secciónValues. Después de eso, Excel mostrará automáticamente las ventas totales de cada ciudad.

Para crear la misma tabla dinámica en pandas, deberá escribir el siguiente código:

sales.pivot_table(index = 'City', values = 'Sales', aggfunc = 'sum')

Analicémoslo:

  1. Aquí usamos un método que les sales.pivot_tabledice a los pandas que queremos crear una tabla dinámica basada en un marco de datos sales.
  2. El argumento indexapunta a la columna por la cual queremos agregar los datos.
  3. El argumento valuesindica qué valores vamos a agregar.
  4. El argumento aggfuncespecifica la función que queremos usar en el tratamiento de los valores (en este caso puede seguir utilizando las funciones mean, max, miny así sucesivamente).

Resumen


De este material aprendió sobre cómo importar datos de Excel en pandas, cómo implementar las capacidades de las funciones de Excel IFy las herramientas de Python.VLOOKUP, así como cómo reproducir la funcionalidad de las tablas dinámicas de Excel con pandas. Quizás ahora se pregunte por qué debería usar pandas si puede hacer lo mismo en Excel. No hay una respuesta única para esta pregunta. Python le permite crear código que puede ser ajustado e investigado a fondo. Tal código puede ser reutilizado. Python puede describir esquemas de análisis de datos muy complejos. Y las características de Excel probablemente solo sean suficientes para la investigación de datos a menor escala. Si solo ha usado Excel hasta ahora, le recomiendo que pruebe Python y pandas y descubra lo que puede hacer.

¿Qué herramientas utilizas para analizar datos?

, , iPhone. , .


All Articles