Pandas : comment éviter l'erreur ImportError: Install xlrd >= x.x.x for Excel support ?

Proposée pour le langage Python, la librairie Pandas permet de manipuler et traiter des données plus facilement. Les données, issues de différentes sources, peuvent être stockées dans des DataFrames pour ensuite être manipulées comme on le souhaite. Parmi les sources possibles, de nombreux formats sont supportés. On peut utiliser un fichier Excel comme source, mais comme l'indique le message d'erreur "ImportError: Install xlrd >= x.x.x for Excel support", il est nécessaire d'installer une librairie supplémentaire pour pouvoir utiliser ce type de source.

Afin de pouvoir manipuler un fichier Excel avec Pandas, vous allez devoir installer une librairie supplémentaire qui va pouvoir lire le fichier. Pandas vous conseille par défaut la librairie "xlrd". Cette librairie permet de lire les anciens fichiers Excel, ceux dont l'extension est "xls". Si c'est bien ce dont vous avez besoin, vous pouvez installer la librairie directement sur votre ordinateur avec le gestionnaire de paquet PIP. Si vous devez lire un fichier Excel récent, au format "xlsx", la librairie "xlrd" ne prend plus en charge ce format. Nous vous conseillons donc d'utiliser la librairie "openpyxl" qui peut lire ces fichiers. Le site "http://www.python-excel.org/" liste l'ensemble des librairies pouvant travailler avec les formats utilisés par Excel, même ceux qui sont moins courants.

# Installation de la librairie xlrd pour les fichiers finissant par ".xls"
pip install xlrd
# Installation de la librairie openpyxl pour les fichiers finissant par ".xlsx"
pip install openpyxl

Une fois la librairie concernée installée, vous pouvez maintenant utiliser la méthode "read_excel" de la librairie Pandas. Dans les paramètres disponibles, le paramètre "engine" permet de préciser la librairie à utiliser. Depuis sa version 1.2.0, ce paramètre a été modifié pour automatiquement chercher "xlrd" pour un fichier ".xls", et "openpyxl" pour un fichier ".xlsx".

import pandas as pd
pd.read_excel('chemin/vers/le/fichier.xlsx', engine='openpyxl')

Python