Lire un fichier Excel à l'aide de Python
-
Lire un fichier Excel à l’aide du package
pandas
en Python -
Lire un fichier Excel à l’aide du package
xlrd
en Python - Exemples de tâches effectuées sur des fichiers Excel en 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
oupip3 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
...