Pandas read_excel() - Lire un fichier Excel en Python
Nous pouvons utiliser la fonction read_excel() du module pandas pour lire les données du fichier Excel dans un objet DataFrame. Si vous regardez une feuille Excel, c'est un tableau bidimensionnel. L'objet DataFrame représente également une structure de données tabulaire bidimensionnelle.
1. Exemple de read_excel() avec Pandas
Disons que nous avons un fichier Excel avec deux feuilles - Employés et Voitures. La première ligne contient l'en-tête du tableau.
Voici l'exemple pour lire les données de la feuille « Employees » et les imprimer.
import pandas
excel_data_df = pandas.read_excel('records.xlsx', sheet_name='Employees')
# print whole sheet data
print(excel_data_df)
Sortie :
EmpID EmpName EmpRole
0 1 Pankaj CEO
1 2 David Lee Editor
2 3 Lisa Ray Author- Le premier paramètre est le nom du fichier Excel.
- Le paramètre sheet_name définit la feuille à lire dans le fichier Excel.
- Lorsque nous imprimons l'objet DataFrame, la sortie est un tableau bidimensionnel. Il ressemble à des enregistrements d'une feuille Excel.
2. Liste des en-têtes de colonnes de la feuille Excel
Nous pouvons obtenir la liste des en-têtes de colonnes en utilisant la propriété columns de l'objet dataframe.
print(excel_data_df.columns.ravel())Sortie :
['EmpID' 'EmpName' 'EmpRole']3. Impression des données d'une colonne
Nous pouvons obtenir les données de la colonne et les convertir en une liste de valeurs.
print(excel_data_df['EmpName'].tolist())Sortie :
['Pankaj', 'David Lee', 'Lisa Ray']4. Exemple de usecols avec read_excel() de Pandas
Nous pouvons spécifier les noms des colonnes à lire à partir du fichier Excel. C'est utile lorsque vous ne vous intéressez qu'à quelques-unes des colonnes de la feuille Excel.
import pandas
excel_data_df = pandas.read_excel('records.xlsx', sheet_name='Cars', usecols=['Car Name', 'Car Price'])
print(excel_data_df)Sortie :
Car Name Car Price
0 Honda City 20,000 USD
1 Bugatti Chiron 3 Million USD
2 Ferrari 458 2,30,000 USD5. Lire un fichier Excel sans ligne d’en-tête
Si la feuille Excel n'a pas de ligne d'en-tête, passez la valeur du paramètre header comme None.
excel_data_df = pandas.read_excel('records.xlsx', sheet_name='Numbers', header=None)Si vous passez la valeur de l'en-tête en tant qu'entier, disons 3. Alors la troisième ligne sera considérée comme la ligne d'en-tête et les valeurs seront lues à partir de la ligne suivante. Toutes les données avant la ligne d'en-tête seront supprimées.
6. Feuille Excel vers Dict, CSV et JSON
L'objet DataFrame possède diverses méthodes utilitaires pour convertir les données tabulaires en format Dict, CSV ou JSON.
excel_data_df = pandas.read_excel('records.xlsx', sheet_name='Cars', usecols=['Car Name', 'Car Price'])
print('Excel Sheet to Dict:', excel_data_df.to_dict(orient='record'))
print('Excel Sheet to JSON:', excel_data_df.to_json(orient='records'))
print('Excel Sheet to CSV:\n', excel_data_df.to_csv(index=False))
Sortie :
Excel Sheet to Dict: [{'Car Name': 'Honda City', 'Car Price': '20,000 USD'}, {'Car Name': 'Bugatti Chiron', 'Car Price': '3 Million USD'}, {'Car Name': 'Ferrari 458', 'Car Price': '2,30,000 USD'}]
Excel Sheet to JSON: [{"Car Name":"Honda City","Car Price":"20,000 USD"},{"Car Name":"Bugatti Chiron","Car Price":"3 Million USD"},{"Car Name":"Ferrari 458","Car Price":"2,30,000 USD"}]
Excel Sheet to CSV:
Car Name,Car Price
Honda City,"20,000 USD"
Bugatti Chiron,3 Million USD
Ferrari 458,"2,30,000 USD"7. Références
- Documentation de l’API pandas read_excel()

