Recherche de site Web

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.

Données des feuilles de fichier Excel

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 USD

5. 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()