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