Excel- und JSON-Dateien einlesen
Importieren Sie Excel-Arbeitsmappen mit pd.read_excel und JSON-Datensätze mit pd.read_json und behandeln Sie gängige Formatvarianten.
Excel- und JSON-Dateien einlesen ist eine kostenlose Pandas & NumPy Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Pandas & NumPy Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Pandas & NumPy Academy-Kurs umfasst insgesamt 4 Lektionen.
Warum Excel und JSON wichtig sind
CSV ist zwar das universelle Format, aber Excel-Dateien (.xlsx/.xls) sind das vorherrschende Format für Geschäftsdaten, die per E-Mail und über Reporting-Tools geteilt werden. JSON ist das native Format von REST-APIs und NoSQL-Datenbanken. Pandas bietet pd.read_excel() und pd.read_json(), deren APIs der des CSV-Readers ähneln, sodass sich Ihre Kenntnisse direkt übertragen lassen.
import pandas as pd
# The three most common load functions share the same philosophy
df_csv = pd.read_csv('data.csv')
df_excel = pd.read_excel('data.xlsx')
df_json = pd.read_json('data.json')Die Excel-Engine installieren
Zum Einlesen von Excel-Dateien wird eine Engine benötigt: openpyxl für .xlsx-Dateien (modernes Format) und xlrd für ältere .xls-Dateien. Installieren Sie sie mit pip install openpyxl. Pandas wählt die Engine anhand der Dateiendung automatisch aus. Verwenden Sie zum Schreiben xlsxwriter für erweiterte Formatierungen. Wenn die Engine nicht installiert ist, löst read_excel() einen ModuleNotFoundError aus.
# Install the required engine:
# pip install openpyxl # for .xlsx (modern)
# pip install xlrd==1.2.0 # for .xls (legacy)
import pandas as pd
df = pd.read_excel('report.xlsx', engine='openpyxl')Ein Tabellenblatt mit sheet_name auswählen
Excel-Arbeitsmappen können mehrere Tabellenblätter enthalten. Mit sheet_name= legen Sie fest, welches Blatt gelesen werden soll: Übergeben Sie einen String (Blattname), eine Ganzzahl (nullbasierte Position) oder eine Liste, um mehrere Blätter in ein Dictionary einzulesen. Übergeben Sie sheet_name=None, um alle Blätter in ein nach Blattnamen indiziertes Dictionary einzulesen. Die verfügbaren Blätter mit pd.ExcelFile('file.xlsx').sheet_names zu überprüfen, ist ein guter Ausgangspunkt.
import pandas as pd
# Read the second sheet
df = pd.read_excel('workbook.xlsx', sheet_name=1)
# Read by name
df = pd.read_excel('workbook.xlsx', sheet_name='Sales')
# Inspect available sheets
xl = pd.ExcelFile('workbook.xlsx')
print(xl.sheet_names) # ['Summary', 'Sales', 'Costs']Häufige Excel-Parameter
pd.read_excel() unterstützt die meisten Parameter von read_csv(): header=, index_col=, usecols=, skiprows=, dtype= und nrows=. Bei Excel akzeptiert usecols außerdem einen Bereich von Excel-Spalten als String, etwa 'A:C' oder 'A,C,E'. Das ist praktisch, wenn die Spaltenbuchstaben aus dem Tabellenlayout bekannt sind.
import pandas as pd
df = pd.read_excel(
'sales_report.xlsx',
sheet_name='Q1',
header=2, # header is on row 3 (0-indexed)
usecols='A:D', # Excel column range
skiprows=[3, 4], # skip rows 4 and 5
nrows=100
)JSON einlesen: Orientierungsformate
pd.read_json() liest JSON in einen DataFrame ein. Der Parameter orient= gibt die Struktur des JSON an: 'records' (Liste von Zeilen-Dictionaries), 'columns' (Dictionary von Spalten-Arrays, Standardwert), 'index' (Dictionary von Zeilen-Dictionaries mit Indexschlüsseln) oder 'values' (rohes Array). Die meisten REST-APIs liefern das Format „records“ zurück – überprüfen Sie immer zuerst das rohe JSON, um die richtige Ausrichtung zu bestimmen.
import pandas as pd
# REST API response: list of records
json_str = '[{"name": "Alice", "age": 30}, {"name": "Bob", "age": 25}]'
df = pd.read_json(json_str, orient='records')
print(df)JSON aus einer Datei oder URL einlesen
pd.read_json() akzeptiert direkt einen Dateipfad, eine URL oder einen JSON-String. Für tief verschachteltes JSON (z. B. API-Antworten mit verschachtelten Objekten) verwenden Sie stattdessen json_normalize() aus dem Modul pandas.io.json. Diese Funktion wandelt verschachtelte Dictionaries in Spalten mit durch Punkte getrennten Namen um.
import pandas as pd
from pandas.io.json import json_normalize
# From a file
df = pd.read_json('events.json')
# Flatten nested JSON
nested = [{'id': 1, 'user': {'name': 'A', 'age': 30}},
{'id': 2, 'user': {'name': 'B', 'age': 25}}]
df_flat = json_normalize(nested)
print(df_flat.columns.tolist()) # ['id', 'user.name', 'user.age']JSON-Lines-Format
JSON Lines (NDJSON) speichert ein JSON-Objekt pro Zeile und erleichtert dadurch das Streamen großer Datensätze. Verwenden Sie pd.read_json('file.jsonl', lines=True), um dieses Format zu analysieren. Es ist bei Logdateien, Kafka-Exporten und Datensatzformaten für maschinelles Lernen üblich. Jede Zeile muss ein gültiges JSON-Objekt enthalten; fehlerhafte Zeilen führen zum Abbruch des Einlesevorgangs.
import pandas as pd
# file.jsonl contains one JSON record per line:
# {"id": 1, "event": "click"}
# {"id": 2, "event": "view"}
df = pd.read_json('events.jsonl', lines=True)
print(df)Datumsanalyse in JSON behandeln
JSON besitzt keinen nativen Datumstyp – Datumsangaben werden als Strings oder Unix-Zeitstempel (Millisekunden oder Sekunden seit der Epoche) gespeichert. Setzen Sie convert_dates=True (Standardwert), damit Pandas versucht, Spalten automatisch umzuwandeln, deren Namen „date“, „time“ oder „at“ enthalten. Bei benutzerdefinierten Spaltennamen oder Zeitstempeln wandeln Sie die Werte explizit mit pd.to_datetime(df['col'], unit='ms') um.
import pandas as pd
# Unix milliseconds timestamp column
df = pd.read_json('events.json', orient='records')
df['created_at'] = pd.to_datetime(df['created_at'], unit='ms')
print(df['created_at'].dtype) # datetime64[ns]Stolperfallen von Excel und JSON im Vergleich
Stolperfallen bei Excel: zusammengeführte Zellen erzeugen NaN-Zeilen, ausgeblendete Zeilen/Spalten werden in die Ausgabe aufgenommen und die Zahlenformatierung (z. B. als Gleitkommazahlen gespeicherte Datumsangaben) muss nach dem Laden korrigiert werden. Stolperfallen bei JSON: uneinheitlich vorhandene Felder in den Datensätzen erzeugen NaN, und Ganzzahlschlüssel in einem JSON-Objekt werden zu String-Spaltennamen.
import pandas as pd
# Excel date stored as float (Excel serial date)
df = pd.read_excel('old_report.xls')
# If dates appear as floats (e.g., 44927.0), convert:
# from xlrd import xldate_as_datetime
# df['date'] = df['date'].apply(lambda x: xldate_as_datetime(x, 0))pd.ExcelFile für mehrere Tabellenblätter
Wenn Sie mehrere Tabellenblätter derselben Datei effizient einlesen müssen, öffnen Sie einen Kontextmanager für pd.ExcelFile und rufen Sie für jedes Blatt parse(sheet_name) auf. Dadurch wird vermieden, dass die Datei für jedes Blatt erneut geöffnet und analysiert wird – besonders wichtig bei großen Arbeitsmappen. Der Kontextmanager schließt das Dateihandle automatisch.
import pandas as pd
with pd.ExcelFile('annual_report.xlsx') as xf:
df_q1 = xf.parse('Q1')
df_q2 = xf.parse('Q2')
print(df_q1.shape, df_q2.shape)JSON-APIs mit requests laden
Für Daten aus REST-APIs verwenden Sie die Bibliothek requests, um JSON abzurufen, und übergeben Sie das analysierte Python-Objekt an pd.DataFrame() oder pd.json_normalize(). Dieses Vorgehen trennt die HTTP-Verarbeitung von der Datenanalyse und ermöglicht Ihnen, Header, Authentifizierung und Seitennummerierung zu verarbeiten, bevor Pandas die Daten übernimmt.
import pandas as pd
import requests
response = requests.get('https://api.example.com/records')
data = response.json() # Python list of dicts
df = pd.DataFrame(data)
print(df.head())Kurztest
Testen Sie Ihr Verständnis des Einlesens von Excel- und JSON-Dateien mit Pandas aus dieser Lektion.
Zusammenfassung der Lektion
In dieser Lektion haben Sie gelernt: pd.read_excel() liest xlsx-Dateien ein und ermöglicht über sheet_name die Auswahl des zu ladenden Tabellenblatts, pd.read_json() verarbeitet mehrere JSON-Strukturen, die über den Parameter orient gesteuert werden und json_normalize() wandelt verschachtelte JSON-Objekte in einen flachen DataFrame um. Als Nächstes exportieren Sie DataFrames in CSV- und Excel-Dateien, um sie zu teilen und weiterzuverarbeiten.
Lerne Python mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 30
- Lektionen
- 120
Häufig gestellte Fragen
Ist die Lektion „Excel- und JSON-Dateien einlesen“ kostenlos?
Ja — der vollständige Text von „Excel- und JSON-Dateien einlesen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Pandas & NumPy Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Pandas & NumPy Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Excel- und JSON-Dateien einlesen“?
Importieren Sie Excel-Arbeitsmappen mit pd.read_excel und JSON-Datensätze mit pd.read_json und behandeln Sie gängige Formatvarianten. Du übst Pandas & NumPy Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Pandas & NumPy Academy zu starten?
Keine Vorkenntnisse erforderlich. Pandas & NumPy Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Excel- und JSON-Dateien einlesen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Pandas & NumPy Academy-Lektion Code schreiben und ausführen?
Ja. Jede Pandas & NumPy Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- CSV-Dateien einlesen
- Excel- und JSON-Dateien einlesen
- DataFrames in Dateien schreiben
- Aus URLs und StringIO lesen