Lire un fichier Excel à l'aide de Python

Vaibhav Vaibhav 10 octobre 2023
  1. Lire un fichier Excel à l’aide du package pandas en Python
  2. Lire un fichier Excel à l’aide du package xlrd en Python
  3. Exemples de tâches effectuées sur des fichiers Excel en Python
Lire un fichier Excel à l'aide de Python

Le langage de programmation Python est bien connu pour son utilisation dans le domaine de la science des données. La science des données implique généralement de traiter des données et de les analyser à l’aide de graphiques et de tracés tels que des tracés linéaires, des tracés de violon, des histogrammes et des cartes thermiques, et des calculs mathématiques tels que la moyenne, la médiane, le mode, la probabilité, la variance, etc. Python est encore plus adapté au fait qu’il rend la lecture et la manipulation de fichiers très transparentes. Étant donné que les données sont généralement représentées dans des formats de fichiers courants tels que xls, xlsx, csv, txt, etc., les gérer avec Python est un jeu d’enfant.

Cet article présentera comment lire des fichiers Excel à l’aide de Python à l’aide de quelques exemples. Par exemple, nous considérerons un exemple de fichier Excel que vous pouvez télécharger à partir de ici afin que nous soyons tous sur la même page. Renommez-le simplement en sample.xls pour que les extraits de code suivants fonctionnent, ou modifiez le nom du fichier dans les extraits de code suivants.

Lire un fichier Excel à l’aide du package pandas en Python

En Python, on peut utiliser la librairie pandas pour lire un fichier excel. Le module pandas est une bibliothèque d’analyse et de manipulation de données open source robuste, puissante, rapide et flexible écrite en Python. Si vous ne l’avez pas installé sur votre machine ou votre environnement virtuel, utilisez la commande suivante.

  • Pour installer pandas : pip install pandas ou pip3 install pandas

Référez-vous au code suivant pour lire un fichier excel à l’aide du module pandas.

import xlrd
import pandas

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

Production :

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')

Lire un fichier Excel à l’aide du package xlrd en Python

En Python, on peut utiliser le package xlrd pour lire des fichiers excel. Le module xlrd est un package Python utilisé pour la lecture et le formatage des fichiers Excel. Si vous ne l’avez pas installé sur votre machine ou votre environnement virtuel, utilisez la commande suivante.

  • Pour installer xlrd, utilisez la commande suivante.
pip install xlrd

Ou,

pip3 install xlrd

Référez-vous au code suivant pour lire les fichiers excel en utilisant 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)

Production :

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

Voici une brève explication de ce que fait le code ci-dessus. Il crée d’abord un descripteur de fichier pour le fichier excel à l’aide de la fonction open_workbook(). Ensuite, il réinitialise le pointeur de fichier sur la position (0,0) ou la cellule en haut à gauche. Ensuite, il itère sur la première ligne et stocke tous les noms de colonnes dans une variable. Généralement, le nom des colonnes est présent dans la première ligne ; c’est pourquoi le code considère cet emplacement. Dans le cas où les noms de colonnes se trouvent sur une ligne différente, on peut changer la valeur 0 dans l’instruction sheet.cell_value(0, i) en n’importe quel numéro de ligne qu’ils souhaitent. Essentiellement, (0, i) représente les coordonnées y et x, où y est 0, et x est i, considérant que l’origine (0,0) est présente à le coin supérieur gauche du fichier.

Exemples de tâches effectuées sur des fichiers Excel en Python

Examinons quelques tâches simples que nous pouvons effectuer sur des fichiers Excel pour mieux comprendre ces deux bibliothèques.

Impression des 3 premières lignes d’un fichier Excel

Utilisation du forfait 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

Production :

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

Utilisation du package 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()

Production :

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, 

Impression des valeurs d’une colonne spécifique

Utilisation du forfait 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])

Production :

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
...

Utilisation du package 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))

Production :

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.

Article connexe - Python Excel