Leer un archivo de Excel usando Python

Vaibhav Vaibhav 10 octubre 2023
  1. Leer un archivo de Excel usando el paquete pandas en Python
  2. Leer un archivo de Excel usando el paquete xlrd en Python
  3. Ejemplos de tareas realizadas sobre archivos de Excel en Python
Leer un archivo de Excel usando Python

El lenguaje de programación Python es bien conocido por su uso en el campo de la ciencia de datos. La ciencia de datos generalmente implica tratar con datos y analizarlos con la ayuda de gráficos y diagramas como diagramas de líneas, diagramas de violín, histogramas y mapas de calor, y cálculos matemáticos como media, mediana, moda, probabilidad, varianza, etc. Python aún más adecuado es el hecho de que hace que la lectura y manipulación de archivos sea muy fluida. Dado que los datos generalmente se representan en formatos de archivo populares como xls, xlsx, csv, txt, etc., manejarlos con Python es pan comido.

Este artículo presentará cómo leer archivos de Excel usando Python con la ayuda de algunos ejemplos. Por ejemplo, consideraremos un archivo de Excel de muestra que puede descargar desde aquí para que todos estemos en la misma página. Simplemente cámbiele el nombre a sample.xls para que funcionen los siguientes fragmentos de código, o cambie el nombre del archivo en los siguientes fragmentos de código.

Leer un archivo de Excel usando el paquete pandas en Python

En Python, podemos usar la biblioteca pandas para leer un archivo de Excel. El módulo pandas es una biblioteca de manipulación y análisis de datos de código abierto robusta, potente, rápida y flexible escrita en Python. Si no lo tiene instalado en su máquina o entorno virtual, use el siguiente comando.

  • Para instalar pandas: pip install pandas o pip3 install pandas

Consulte el siguiente código para leer un archivo de Excel utilizando el módulo pandas.

import xlrd
import pandas

df = pandas.read_excel("sample.xls")
print("Columns")
print(df.columns)

Producción :

Columns
Index(['Segment', 'Country', 'Product', 'Discount Band', 'Units Sold',
       'Manufacturing Price', 'Sale Price', 'Gross Sales', 'Discounts',
       ' Sales', 'COGS', 'Profit', 'Date', 'Month Number', 'Month Name',
       'Year'],
      dtype='object')

Leer un archivo de Excel usando el paquete xlrd en Python

En Python, podemos usar el paquete xlrd para leer archivos de Excel. El módulo xlrd es un paquete de Python que se utiliza para leer y formatear archivos de Excel. En caso de que no lo tenga instalado en su máquina o entorno virtual, use el siguiente comando.

  • Para instalar xlrd, utilice el siguiente comando.
pip install xlrd

O,

pip3 install xlrd

Consulte el siguiente código para leer archivos de Excel usando xlrd.

from xlrd import open_workbook

wb = open_workbook("sample.xls")
sheet = wb.sheet_by_index(0)
sheet.cell_value(0, 0)
columns = []
print("Columns")

for i in range(sheet.ncols):
    columns.append(sheet.cell_value(0, i))

print(columns)

Producción :

Columns
['Segment', 'Country', 'Product', 'Discount Band', 'Units Sold', 'Manufacturing Price', 'Sale Price', 'Gross Sales', 'Discounts', ' Sales', 'COGS', 'Profit', 'Date', 'Month Number', 'Month Name', 'Year']

Aquí hay una breve explicación de lo que hace el código anterior. Primero crea un descriptor de archivo para el archivo de Excel con la ayuda de la función open_workbook(). Luego, restablece el puntero del archivo a la posición (0,0) o la celda superior izquierda. A continuación, itera sobre la primera fila y almacena todos los nombres de columna en una variable. Generalmente, el nombre de las columnas está presente en la primera fila; por eso el código considera esa ubicación. En caso de que los nombres de las columnas estén en una fila diferente, se puede cambiar el valor 0 en la declaración sheet.cell_value(0, i) al número de fila que se desee. Esencialmente, (0, i) representa las coordenadas y y x, donde y es 0 y x es i, considerando que el origen (0, 0) está presente en la esquina superior izquierda del archivo.

Ejemplos de tareas realizadas sobre archivos de Excel en Python

Veamos algunas tareas simples que podemos realizar en archivos de Excel para comprender mejor estas dos bibliotecas.

Impresión de las primeras 3 filas de un archivo de Excel

Usando el paquete pandas

import pandas

df = pandas.read_excel("sample.xls")
count = 3

for index, row in df.iterrows():
    print(row, end="\n\n")

    if index == count - 1:
        break

Producción :

Segment                         Government
Country                             Canada
Product                          Carretera
Discount Band                         None
Units Sold                          1618.5
Manufacturing Price                      3
Sale Price                              20
Gross Sales                        32370.0
Discounts                              0.0
 Sales                             32370.0
COGS                               16185.0
Profit                             16185.0
Date                   2014-01-01 00:00:00
Month Number                             1
Month Name                         January
Year                                  2014
Name: 0, dtype: object

Segment                         Government
Country                            Germany
Product                          Carretera
Discount Band                         None
Units Sold                          1321.0
Manufacturing Price                      3
Sale Price                              20
Gross Sales                        26420.0
Discounts                              0.0
 Sales                             26420.0
COGS                               13210.0
Profit                             13210.0
Date                   2014-01-01 00:00:00
Month Number                             1
Month Name                         January
Year                                  2014
Name: 1, dtype: object

Segment                          Midmarket
Country                             France
Product                          Carretera
Discount Band                         None
Units Sold                          2178.0
Manufacturing Price                      3
Sale Price                              15
Gross Sales                        32670.0
Discounts                              0.0
 Sales                             32670.0
COGS                               21780.0
Profit                             10890.0
Date                   2014-06-01 00:00:00
Month Number                             6
Month Name                            June
Year                                  2014
Name: 2, dtype: object

Usando el paquete xlrd

from xlrd import open_workbook

wb = open_workbook("sample.xls")
sheet = wb.sheet_by_index(0)
sheet.cell_value(0, 0)
count = 3

for i in range(1, count + 1):
    for j in range(sheet.ncols):
        print(sheet.cell_value(i, j), end=", ")

    print()

Producción :

Government, Canada, Carretera, None, 1618.5, 3.0, 20.0, 32370.0, 0.0, 32370.0, 16185.0, 16185.0, 41640.0, 1.0, January, 2014, 
Government, Germany, Carretera, None, 1321.0, 3.0, 20.0, 26420.0, 0.0, 26420.0, 13210.0, 13210.0, 41640.0, 1.0, January, 2014, 
Midmarket, France, Carretera, None, 2178.0, 3.0, 15.0, 32670.0, 0.0, 32670.0, 21780.0, 10890.0, 41791.0, 6.0, June, 2014, 

Impresión de valores de una columna específica

Usando el paquete pandas

import pandas

df = pandas.read_excel("sample.xls")
column = df.columns[4]
print(column)
print("-" * len(column))

for index, row in df.iterrows():
    print(row[column])

Producción :

Units Sold
----------
1618.5
1321.0
2178.0
888.0
2470.0
1513.0
921.0
2518.0
1899.0
1545.0
2470.0
2665.5
958.0
2146.0
345.0
615.0
292.0
974.0
2518.0
1006.0
367.0
883.0
549.0
788.0
2472.0
1143.0
1725.0
912.0
2152.0
1817.0
1513.0
1493.0
1804.0
2161.0
1006.0
1545.0
2821.0
345.0
2001.0
2838.0
2178.0
888.0
...

Usando el paquete xlrd

from xlrd import open_workbook

wb = open_workbook("sample.xls")
sheet = wb.sheet_by_index(0)
sheet.cell_value(0, 0)
column_index = 4
column = sheet.cell_value(0, column_index)
print(column)
print("-" * len(column))

for row in range(1, sheet.nrows):
    print(sheet.cell_value(row, column_index))

Producción :

Units Sold
----------
1618.5
1321.0
2178.0
888.0
2470.0
1513.0
921.0
2518.0
1899.0
1545.0
2470.0
2665.5
958.0
2146.0
345.0
615.0
292.0
974.0
2518.0
1006.0
367.0
883.0
549.0
788.0
2472.0
1143.0
1725.0
912.0
2152.0
1817.0
1513.0
1493.0
1804.0
2161.0
1006.0
1545.0
2821.0
345.0
2001.0
2838.0
2178.0
888.0
...
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Artículo relacionado - Python Excel