Pandas pd.read_excel()-Funktion

Python math 模块Pandas Häufige Funktionen


read_excel()ist eine Funktion in der pandas-Bibliothek, die zum Lesen von Excel-Dateien verwendet wird und das Lesen unterstützt.xlsxund.xlsExcel-Dateien im Format.

Excel ist das am häufigsten verwendete Dateiformat in der Unternehmensdatenanalyse. Es unterstützt mehrere Arbeitsblätter, umfangreiche Zellformatierung, Formeln usw.read_excel()Es kann Daten aus Excel-Dateien lesen und sie in das pandas-DataFrame-Format umwandeln, was die anschließende Datenverarbeitung und -analyse erleichtert.


Grundlegende Syntax und Parameter

Syntaxformat

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, ...)

Parameterbeschreibung

ParameterTypeBeschreibungStandardwert
iostr, ExcelFile, Pfadobjekt, dateiähnliches ObjektExcel-Dateipfad oder ExcelFile-ObjektErforderlich
sheet_namestr, int, list, NoneArbeitsblattname oder -index zum Lesen; None liest alle Arbeitsblätter0
headerint, list von intZeilennummer, die als Spaltennamen verwendet werden soll; 0 bedeutet die erste Zeile0
nameslistenähnlichListe benutzerdefinierter SpaltennamenKeine
index_colint, strSpalte, die als Zeilenindex verwendet werden sollKeine
usecolsint, str, listNur die angegebenen Spalten lesenKeine
dtypedictDatentyp für angegebene SpaltenKeine
skiprowslistenähnlich, intDie angegebenen Zeilen überspringenKeine
nrowsintNur die ersten n Zeilen lesenKeine

Rückgabewert

  • Rückgabetyp:pd.DataFrameoderdict von DataFrames
  • Wannsheet_nameWenn es sich um ein einzelnes Arbeitsblatt handelt, wird ein DataFrame zurückgegeben.
  • Wannsheet_nameWenn es None ist oder mehrere Arbeitsblätter enthält, wird ein Wörterbuch mit Arbeitsblattnamen als Schlüssel und entsprechenden DataFrames als Werte zurückgegeben.

Beispiele

Anhand der folgenden Beispiele meistern Sie umfassendread_excel()die verschiedenen Verwendungsweisen von.

Beispiel 1: Eine lokale Excel-Datei lesen

Erstellen und lesen Sie zunächst eine einfache Excel-Datei.

Beispiel

import pandas as pd
import openpyxl  # Installation erforderlich: pip install openpyxl

# DataFrame erstellen
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)

# DataFrame in eine Excel-Datei schreiben
# Excel-Dateipfad: employees.xlsx
df_original.to_excel('employees.xlsx', index=False, engine='openpyxl')

# read_excel verwenden, um die Excel-Datei zu lesen
# io: Dateipfad (erforderlich)
df = pd.read_excel('employees.xlsx')

# Das eingelesene Ergebnis anzeigen
print("DataFrame gelesen:")
print(df)
print("nDatentypen:")
print(df.dtypes)

Erwartete Ausgabe:

读取的 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

Code-Erklärung:

  • pd.read_excel('employees.xlsx')Dies ist die grundlegendste Verwendung; übergeben Sie einfach den Dateipfad.
  • Standardmäßig liest es das erste Arbeitsblatt (sheet_name=0) mit der ersten Zeile als Spaltennamen.
  • Installation erforderlichopenpyxlBibliothek zur Unterstützung des Lesens und Schreibens des .xlsx-Formats.

Beispiel 2: Mehrere Arbeitsblätter lesen

Excel-Dateien können mehrere Arbeitsblätter enthalten,read_excel()wodurch das flexible Lesen angegebener Arbeitsblätter oder aller Arbeitsblätter unterstützt wird.

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

# Eine Excel-Datei mit mehreren Arbeitsblättern erstellen
# Zuerst zwei DataFrames erstellen
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']
})

# Mehrere Arbeitsblätter in eine Excel-Datei schreiben
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)

# Beispiel 2a: Ein angegebenes Arbeitsblatt lesen (nach Namen)
df_sales_read = pd.read_excel('multi_sheet.xlsx', sheet_name='Sales')
print("Sales-Arbeitsblatt lesen:")
print(df_sales_read)
print()

# Beispiel 2b: Ein bestimmtes Arbeitsblatt lesen (nach Index)
df_inv_read = pd.read_excel('multi_sheet.xlsx', sheet_name=1)
print("2. Arbeitsblatt lesen (Index 1):")
print(df_inv_read)
print()

# Beispiel 2c: Alle Arbeitsblätter lesen (gibt ein Dictionary zurück)
all_sheets = pd.read_excel('multi_sheet.xlsx', sheet_name=None)
print("Alle Arbeitsblattnamen:", list(all_sheets.keys()))
print("nAlle Arbeitsblätter durchlaufen:")
for sheet_name, df_sheet in all_sheets.items():
    print(f"n--- {sheet_name} ---")
    print(df_sheet)

Erwartete Ausgabe:

读取 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
...

Code-Erklärung:

  • sheet_nameDer Parameter sheet_name kann Arbeitsblattnamen (Zeichenketten) oder Indizes (Ganzzahlen) akzeptieren.
  • Einstellungsheet_name=Noneliest alle Arbeitsblätter und gibt ein Wörterbuch zurück, wobei Arbeitsblattnamen als Schlüssel und DataFrames als Werte verwendet werden.
  • Verwendungpd.ExcelWritermacht es einfach, mehrere Arbeitsblätter zu schreiben.

Beispiel 3: Erweiterte Verwendung - Benutzerdefinierte Spalten und Überspringen von Zeilen

In der Praxis können Excel-Dateien komplexe Formate aufweisen, die eine flexible Handhabung erfordern.

Beispiel

import pandas as pd

# Erstellen Sie eine Excel-Datei mit einer Kopfzeile und leeren Zeilen
# Die ersten paar Zeilen sind Metadaten; die eigentlichen Daten beginnen in Zeile 4
data_with_header = """Mitarbeiterdaten des Unternehmens
Erstellungsdatum: 2024-01-01
Abteilung: Technologieabteilung
---
name,age,city,salary
Tom,28,Beijing,8000
Jerry,35,Shanghai,12000
"""


# Zuerst eine CSV erstellen und dann in Excel konvertieren (Simulation eines realen Szenarios)
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')

# Beispiel 3a: Die ersten paar Zeilen überspringen, die N-te Zeile als Spaltennamen verwenden
df_skip = pd.read_excel('complex_format.xlsx', header=3)
print("Die ersten 3 Zeilen überspringen, Zeile 4 als Spaltennamen verwenden:")
print(df_skip)
print()

# Beispiel 3b: Nur die angegebenen Spalten lesen
df_cols = pd.read_excel('complex_format.xlsx', usecols=['name', 'salary'])
print("Nur die Spalten name und salary lesen:")
print(df_cols)
print()

# Beispiel 3c: Nur die ersten paar Zeilen lesen
df_head = pd.read_excel('complex_format.xlsx', nrows=2)
print("Nur die ersten 2 Zeilen lesen:")
print(df_head)
print()

# Beispiel 3d: Benutzerdefinierte Spaltennamen
df_custom_names = pd.read_excel('complex_format.xlsx',
                                  names=['Name', 'Alter', 'Stadt', 'Salary'],
                                  header=0)
print("Benutzerdefinierte Spaltennamen:")
print(df_custom_names)

Erwartete Ausgabe:

跳过前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

Code-Erklärung:

  • headerDer Parameter header gibt an, welche Zeile als Spaltennamen verwendet werden soll (Zählung beginnt bei 0).
  • usecolsusecols kann angeben, welche Spalten gelesen werden sollen, und unterstützt Listen von Spaltennamen oder Spaltenindizes.
  • nrowsnrows begrenzt die Anzahl der gelesenen Zeilen, geeignet für das partielle Lesen großer Dateien.
  • namesDer Parameter names kann Spaltennamen anpassen und überschreibt die Spaltennamen in der Originaldatei.

Hinweise

  • Das Lesen des .xlsx-Formats erfordert die Installation vonopenpyxl:pip install openpyxl。
  • Das Lesen des .xls-Formats erfordert die Installation vonxlrd:pip install xlrd(Hinweis: xlrd 2.0+ unterstützt keine .xls-Dateien mehr).
  • Excel-Dateien haben Zeilen- und Spaltengrenzen (maximal 1,048,576 Zeilen und 16,384 Spalten); das Überschreiten dieser Grenzen führt zu Datenverlust.
  • Beim Lesen großer Dateien sollten Sie die Verwendung vonusecolsdem usecols-Parameter in Betracht ziehen, um nur die benötigten Spalten zu lesen und die Leistung zu verbessern.
  • sheet_nameDer sheet_name-Parameter unterstützt das Mischen von Namen und Indizes.

Zusammenfassung

read_excel()Es ist die Kernfunktion in pandas zum Lesen von Excel-Dateien und sehr leistungsstark. Sie unterstützt das Lesen einzelner oder mehrerer Arbeitsblätter und kann Excel-Dateien in verschiedenen Formaten flexibel verarbeiten.

In der praktischen Datenanalyse sind Excel-Dateien eine der häufigsten Datenquellen. Die Beherrschungread_excel()der verschiedenen Parameternutzungen ermöglicht es Ihnen, alle Arten von Excel-Daten effizient zu verarbeiten, was Sie auf die anschließende Datenbereinigung und -analyse vorbereitet. Lesern wird empfohlen, mehr zu üben, insbesondere das Lesen mehrerer Arbeitsblätter und die Konfiguration von Parametern.

Python math 模块Pandas Häufige Funktionen

Andere Erweiterungen