Fonction Pandas pd.read_excel()
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ètre | Type | Description | Valeur par défaut |
|---|---|---|---|
| io | str, ExcelFile, objet de type chemin, objet de type fichier | Chemin du fichier Excel ou objet ExcelFile | Requis |
| sheet_name | str, int, list, None | Nom ou index de la feuille de calcul à lire ; None lit toutes les feuilles de calcul | 0 |
| header | int, liste d'int | Numéro de ligne à utiliser comme noms de colonnes ; 0 signifie la première ligne | 0 |
| names | de type liste | Liste personnalisée de noms de colonnes | Aucune |
| index_col | int, str | Colonne à utiliser comme index de ligne | Aucune |
| usecols | int, str, list | Lire uniquement les colonnes spécifiées | Aucune |
| dtype | dict | Type de données pour les colonnes spécifiées | Aucune |
| skiprows | de type liste, int | Ignorer les lignes spécifiées | Aucune |
| nrows | int | Lire uniquement les n premières lignes | Aucune |
Valeur de retour
- Type de retour:
pd.DataFrameoudictde DataFrames - Quand
sheet_nameLorsqu'il s'agit d'une seule feuille de calcul, renvoie un DataFrame. - Quand
sheet_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 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 installer
openpyxlbibliothè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.
# 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ètre
sheet_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. - Utilisation
pd.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
# 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 de
openpyxl:pip install openpyxl。 - La lecture du format .xls nécessite l'installation de
xlrd: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'utiliser
usecolsle 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.
Fonctions courantes de Pandas