Python: procesamiento de datos XLS

Microsoft Excel es un programa de hoja de cálculo muy utilizado. Su facilidad de uso y características atractivas la convierten en una herramienta de uso muy frecuente en la ciencia de datos. La biblioteca de Panadas proporciona características mediante las cuales podemos leer el archivo de Excel en su totalidad, así como en partes, solo para un grupo seleccionado de datos. También podemos leer un archivo de Excel con varias hojas. Usamos elread_excel función para leer los datos de él.

Entrada como archivo de Excel

Creamos un archivo de Excel con varias hojas en el sistema operativo Windows. Los datos de las diferentes hojas se muestran a continuación.

Puede crear este archivo utilizando el programa Excel en el sistema operativo Windows. Guarde el archivo comoinput.xlsx.

# Data in Sheet1

id,name,salary,start_date,dept
1,Rick,623.3,2012-01-01,IT
2,Dan,515.2,2013-09-23,Operations
3,Tusar,611,2014-11-15,IT
4,Ryan,729,2014-05-11,HR
5,Gary,843.25,2015-03-27,Finance
6,Rasmi,578,2013-05-21,IT
7,Pranab,632.8,2013-07-30,Operations
8,Guru,722.5,2014-06-17,Finance

# Data in Sheet2

id	name	zipcode
1	Rick	301224
2	Dan	341255
3	Tusar	297704
4	Ryan	216650
5	Gary	438700
6	Rasmi	665100
7	Pranab	341211
8	Guru	347480

Leer un archivo de Excel

los read_excelLa función de la biblioteca de pandas se utiliza para leer el contenido de un archivo de Excel en el entorno de Python como un DataFrame de pandas. La función puede leer los archivos del sistema operativo utilizando la ruta adecuada al archivo. De forma predeterminada, la función leerá Hoja1.

import pandas as pd
data = pd.read_excel('path/input.xlsx')
print (data)

Cuando ejecutamos el código anterior, produce el siguiente resultado. Tenga en cuenta cómo la función ha creado una columna adicional que comienza con cero como índice.

id    name  salary  start_date        dept
0   1    Rick  623.30  2012-01-01          IT
1   2     Dan  515.20  2013-09-23  Operations
2   3   Tusar  611.00  2014-11-15          IT
3   4    Ryan  729.00  2014-05-11          HR
4   5    Gary  843.25  2015-03-27     Finance
5   6   Rasmi  578.00  2013-05-21          IT
6   7  Pranab  632.80  2013-07-30  Operations
7   8    Guru  722.50  2014-06-17     Finance

Lectura de filas y columnas específicas

Similar a lo que ya hemos visto en el capítulo anterior para leer el archivo CSV, el read_excelLa función de la biblioteca de pandas también se puede utilizar para leer algunas columnas y filas específicas. Usamos el método de indexación de múltiples ejes llamado.loc()para este propósito. Elegimos mostrar la columna de salario y nombre para algunas de las filas.

import pandas as pd
data = pd.read_excel('path/input.xlsx')

# Use the multi-axes indexing funtion
print (data.loc[[1,3,5],['salary','name']])

Cuando ejecutamos el código anterior, produce el siguiente resultado.

salary   name
1   515.2    Dan
3   729.0   Ryan
5   578.0  Rasmi

Leer varias hojas de Excel

También se pueden leer varias hojas con diferentes formatos de datos utilizando la función read_excel con la ayuda de una clase contenedora denominada ExcelFile. Leerá las hojas múltiples en la memoria solo una vez. En el siguiente ejemplo, leemos sheet1 y sheet2 en dos marcos de datos y los imprimimos individualmente.

import pandas as pd
with pd.ExcelFile('C:/Users/Rasmi/Documents/pydatasci/input.xlsx') as xls:
    df1 = pd.read_excel(xls, 'Sheet1')
    df2 = pd.read_excel(xls, 'Sheet2')

print("****Result Sheet 1****")
print (df1[0:5]['salary'])
print("")
print("***Result Sheet 2****")
print (df2[0:5]['zipcode'])

Cuando ejecutamos el código anterior, produce el siguiente resultado.

****Result Sheet 1****
0    623.30
1    515.20
2    611.00
3    729.00
4    843.25
Name: salary, dtype: float64

***Result Sheet 2****
0    301224
1    341255
2    297704
3    216650
4    438700
Name: zipcode, dtype: int64