Fonction Pandas pd.read_excel()

Python math 模块Fonctions courantes de Pandas


read_excel()est une fonction de la bibliothèque pandas utilisée pour lire des fichiers Excel, prenant en charge la lecture.xlsxet.xlsfichiers Excel au format.

Excel est le format de fichier le plus couramment utilisé dans l'analyse de données en entreprise. Il prend en charge plusieurs feuilles de calcul, une mise en forme riche des cellules, des formules, etc.read_excel()Il peut lire des données à partir de fichiers Excel et les convertir au format pandas DataFrame, facilitant ainsi le traitement et l'analyse ultérieurs des données.


Syntaxe de base et paramètres

Format de syntaxe

pandas.read_excel(io, sheet_name=0, header=0, names=None, index_col=None,
                 usecols=None, dtype=None, skiprows=None, nrows=None,
                 na_values=None, ...)

Description du paramètre

ParamètreTypeDescriptionValeur par défaut
iostr, ExcelFile, objet de type chemin, objet de type fichierChemin du fichier Excel ou objet ExcelFileRequis
sheet_namestr, int, list, NoneNom ou index de la feuille de calcul à lire ; None lit toutes les feuilles de calcul0
headerint, liste d'intNuméro de ligne à utiliser comme noms de colonnes ; 0 signifie la première ligne0
namesde type listeListe personnalisée de noms de colonnesAucune
index_colint, strColonne à utiliser comme index de ligneAucune
usecolsint, str, listLire uniquement les colonnes spécifiéesAucune
dtypedictType de données pour les colonnes spécifiéesAucune
skiprowsde type liste, intIgnorer les lignes spécifiéesAucune
nrowsintLire uniquement les n premières lignesAucune

Valeur de retour

  • Type de retour:pd.DataFrameoudict de DataFrames
  • Quandsheet_nameLorsqu'il s'agit d'une seule feuille de calcul, renvoie un DataFrame.
  • Quandsheet_nameLorsqu'il est None ou contient plusieurs feuilles de calcul, renvoie un dictionnaire avec les noms des feuilles de calcul comme clés et les DataFrames correspondants comme valeurs.

Exemples

À travers les exemples suivants, vous maîtriserez de manière complèteread_excel()les différentes utilisations de.

Exemple 1 : Lecture d'un fichier Excel local

Tout d'abord, créez et lisez un fichier Excel simple.

Exemple

import pandas as pd
import openpyxl  # À installer : pip install openpyxl

# Créer un DataFrame
data = {
    'name': ['Tom', 'Jerry', 'Mike', 'Lucy'],
    'age': [28, 35, 42, 26],
    'city': ['Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen'],
    'salary': [8000, 12000, 15000, 7000]
}
df_original = pd.DataFrame(data)

# Écrire le DataFrame dans un fichier Excel
# Chemin du fichier Excel : employees.xlsx
df_original.to_excel('employees.xlsx', index=False, engine='openpyxl')

# Utiliser read_excel pour lire le fichier Excel
# io : chemin du fichier (obligatoire)
df = pd.read_excel('employees.xlsx')

# Afficher le résultat de la lecture
print("DataFrame lu :")
print(df)
print("nTypes de données :")
print(df.dtypes)

Sortie attendue :

读取的 DataFrame:
    name  age       city  salary
0    Tom   28    Beijing    8000
1  Jerry   35   Shanghai   12000
2   Mike   42   Guangzhou   15000
3  Lucy   26   Shenzhen    7000

数据类型:
name      object
age        int64
city      object
salary    int64

Explication du code :

  • pd.read_excel('employees.xlsx')C'est l'utilisation la plus basique ; il suffit de passer le chemin du fichier.
  • Par défaut, il lit la première feuille de calcul (sheet_name=0), avec la première ligne comme noms de colonnes.
  • Il faut installeropenpyxlbibliothèque pour prendre en charge la lecture et l'écriture du format .xlsx.

Exemple 2 : Lecture de plusieurs feuilles de calcul

Les fichiers Excel peuvent contenir plusieurs feuilles de calcul,read_excel()prenant en charge la lecture flexible de feuilles de calcul spécifiées ou de toutes les feuilles de calcul.

h2 class="example">Exemple
import pandas as pd

# Créer un fichier Excel contenant plusieurs feuilles de calcul
# Créer d'abord deux DataFrames
df_sales = pd.DataFrame({
    'product': ['A', 'B', 'C', 'D'],
    'quantity': [100, 200, 150, 80],
    'price': [50, 30, 40, 60]
})

df_inventory = pd.DataFrame({
    'product': ['A', 'B', 'C', 'D'],
    'stock': [500, 300, 400, 200],
    'warehouse': ['WH1', 'WH2', 'WH1', 'WH3']
})

# Écrire plusieurs feuilles de calcul dans un seul fichier Excel
with pd.ExcelWriter('multi_sheet.xlsx', engine='openpyxl') as writer:
    df_sales.to_excel(writer, sheet_name='Sales', index=False)
    df_inventory.to_excel(writer, sheet_name='Inventory', index=False)

# Exemple 2a : Lire une feuille de calcul spécifiée (par nom)
df_sales_read = pd.read_excel('multi_sheet.xlsx', sheet_name='Sales')
print("Lire la feuille de calcul Sales :")
print(df_sales_read)
print()

# Exemple 2b : Lire une feuille de calcul spécifiée (par index)
df_inv_read = pd.read_excel('multi_sheet.xlsx', sheet_name=1)
print("Lire la 2e feuille de calcul (index 1) :")
print(df_inv_read)
print()

# Exemple 2c : Lire toutes les feuilles de calcul (renvoie un dictionnaire)
all_sheets = pd.read_excel('multi_sheet.xlsx', sheet_name=None)
print("Tous les noms de feuilles de calcul :", list(all_sheets.keys()))
print("nParcourir toutes les feuilles de calcul :")
for sheet_name, df_sheet in all_sheets.items():
    print(f"n--- {sheet_name} ---")
    print(df_sheet)

Sortie attendue :

读取 Sales 工作表:
  product  quantity  price
0       A       100     50
1       B       200     30
2       C       150     40
3       D        80     60

读取第2个工作表 (索引为1):
  product  stock warehouse
0       A    500       WH1
1       B    300       WA2
2       C    400       WH1
3       D    200       WH3

所有工作表名称: ['Sales', 'Inventory']

遍历所有工作表:
--- Sales ---
  product  quantity  price
...

--- Inventory ---
  product  stock warehouse
...

Explication du code :

  • sheet_nameLe paramètre sheet_name peut accepter des noms de feuilles de calcul (chaînes de caractères) ou des indices (entiers).
  • Paramètresheet_name=Nonelira toutes les feuilles de calcul et renverra un dictionnaire avec les noms des feuilles de calcul comme clés et les DataFrames comme valeurs.
  • Utilisationpd.ExcelWriterfacilite l'écriture de plusieurs feuilles de calcul.

Exemple 3 : Utilisation avancée - Colonnes personnalisées et saut de lignes

Dans le travail réel, les fichiers Excel peuvent avoir des formats complexes qui nécessitent une gestion flexible.

Exemple

import pandas as pd

# Créer un fichier Excel avec une ligne d'en-tête et des lignes vides
# Les premières lignes sont des métadonnées ; les données réelles commencent à la ligne 4
data_with_header = """Données des employés de l'entreprise
Date de création : 2024-01-01
Département : Service Technologie
---
name,age,city,salary
Tom,28,Beijing,8000
Jerry,35,Shanghai,12000
"""


# D'abord créer un CSV puis le convertir en Excel (simulation d'un scénario réel)
import io
df_temp = pd.read_csv(io.StringIO(data_with_header.split('---')[1]))
df_temp.to_excel('complex_format.xlsx', index=False, engine='openpyxl')

# Exemple 3a : Ignorer les premières lignes, utiliser la Nième ligne comme noms de colonnes
df_skip = pd.read_excel('complex_format.xlsx', header=3)
print("Ignorer les 3 premières lignes, utiliser la ligne 4 comme noms de colonnes :")
print(df_skip)
print()

# Exemple 3b : Lire uniquement les colonnes spécifiées
df_cols = pd.read_excel('complex_format.xlsx', usecols=['name', 'salary'])
print("Lire uniquement les colonnes name et salary :")
print(df_cols)
print()

# Exemple 3c : Lire uniquement les premières lignes
df_head = pd.read_excel('complex_format.xlsx', nrows=2)
print("Lire uniquement les 2 premières lignes :")
print(df_head)
print()

# Exemple 3d : Noms de colonnes personnalisés
df_custom_names = pd.read_excel('complex_format.xlsx',
                                  names=['Name', 'Age', 'City', 'Salary'],
                                  header=0)
print("Noms de colonnes personnalisés :")
print(df_custom_names)

Sortie attendue :

跳过前3行,使用第4行作为列名:
    name  age     city  salary
0    Tom   28  Beijing    8000
1  Jerry   35  Shanghai  12000

只读取 name 和 salary 列:
    name  salary
0    Tom    8000
1  Jerry  12000

只读取前2行:
    name  age     city  salary
0    Tom   28  Beijing    8000

自定义列名:
     姓名  年龄       城市    薪资
0    Tom   28    Beijing   8000
1  Jerry   35   Shanghai  12000

Explication du code :

  • headerLe paramètre header spécifie quelle ligne utiliser comme noms de colonnes (en comptant à partir de 0).
  • usecolsusecols peut spécifier quelles colonnes lire, en prenant en charge des listes de noms de colonnes ou des indices de colonnes.
  • nrowsnrows limite le nombre de lignes lues, ce qui convient pour une lecture partielle de fichiers volumineux.
  • namesLe paramètre names permet de personnaliser les noms de colonnes et remplacera les noms de colonnes du fichier d'origine.

Notes

  • La lecture du format .xlsx nécessite l'installation deopenpyxl:pip install openpyxl。
  • La lecture du format .xls nécessite l'installation dexlrd:pip install xlrd(Remarque : xlrd 2.0+ ne prend plus en charge les fichiers .xls).
  • Les fichiers Excel ont des limites de lignes et de colonnes (maximum 1,048,576 lignes et 16,384 colonnes) ; dépasser ces limites entraînera une perte de données.
  • Lors de la lecture de fichiers volumineux, envisagez d'utiliserusecolsle paramètre usecols pour lire uniquement les colonnes nécessaires et améliorer les performances.
  • sheet_nameLe paramètre sheet_name prend en charge le mélange des noms et des indices.

Résumé

read_excel()C'est la fonction essentielle de pandas pour lire les fichiers Excel et elle est très puissante. Elle prend en charge la lecture d'une ou de plusieurs feuilles de calcul et peut gérer de manière flexible des fichiers Excel de différents formats.

Dans le travail pratique d'analyse de données, les fichiers Excel sont l'une des sources de données les plus courantes. Maîtriserread_excel()les différentes utilisations des paramètres vous permet de gérer efficacement toutes sortes de données Excel, vous préparant au nettoyage et à l'analyse ultérieurs des données. Il est conseillé aux lecteurs de s'exercer davantage, en particulier la lecture de plusieurs feuilles de calcul et la configuration des paramètres.

Python math 模块Fonctions courantes de Pandas

Autres extensions