Vom Rohdaten-Archiv zum Master-Datensatz
Data-Engineering-Pipeline für das Zürcher Tramnetz (VBZ) | 2023–2025
Von der Projektgenese bis zum Ausblick
Projektsuche zum Ende der Fortbildung
Dieses Projekt entstand als Abschlussarbeit einer Data-Science-Fortbildung — der Rahmen war bewusst offen: nicht welches Modell, sondern welches Thema war die große Herausforderung.
Gesucht war ein Thema, an dem sich Data Science nicht abstrakt anfühlt, sondern an einem Alltagsbeispiel mit echtem Impact nachvollziehbar wird.
Ein datengetriebenes Thema mit gesellschaftlicher Relevanz
Daten sollen sinnstiftend eingesetzt werden — mit greifbarem Bezug zum Alltag, zur Lebensqualität, im besten Fall zur Nachhaltigkeit.
Öffentlicher Verkehr trifft das genau: täglich erlebbar, gesellschaftlich relevant, datenreich. Die Recherche führte über den ÖPNV nach Zürich.
Zürichs Open-Data-Ökosystem als Grundlage für reproduzierbare Analysen
Zürich betreibt eine außergewöhnlich gute Open-Data-Landschaft für sein Tramnetz (VBZ) — frei zugänglich, gut dokumentiert, granular genug für echte Analyse.
Auch die Recherche nach ergänzenden Zürcher Datenquellen (Wetter, Events, Geografie) war vielversprechend. Das war der Startpunkt des Projekts.
Zielsetzung, Scope und Einordnung im Data-Lifecycle
Aufbau einer integrierten, analysefähigen Datengrundlage
Einen Datensatz bauen, mit dem eine sinnvolle, qualitativ belastbare Analyse des Zürcher Tramnetzes überhaupt erst möglich wird.
Der Leitgedanke dahinter: reduzieren was da ist, anreichern was fehlt.
Zusammenführung der fünf Datenquellen zu einem reproduzierbaren Master-Datensatz
38 GB schweizweite Ist-Daten als Ausgangsvolumen
Die IST-Rohdaten beschreiben den gesamten öffentlichen Verkehr der Schweiz — jeder Zug, Bus, jedes Tram, Schiff, jede Seilbahn. Relevant ist ein schmaler Ausschnitt: VBZ Tram Zürich.
Werkzeugwahl per Benchmark auf dem realen Datenvolumen
| Pandas | Polars | Faktor | |
|---|---|---|---|
| Ladezeit (alle Parquets) | 25,7 s | 6,6 s | ~4× |
| RAM-Verbrauch | 6,1 GB | ~1,4 GB | ~4× |
Entscheidung: Polars für alle großen Operationen (IST, Merge). Pandas bleibt für kleine Quellen (GTFS/Meteo/Events) und als Lernreferenz.
Regelbasierte Filterung von ~400 Betreibern auf das VBZ-Tramnetz
~400 CH-Unternehmen → BETREIBER_ID 85:3849 (VBZ), PRODUKT_ID = Tram
2023–2025, nur Format v1 (v2 ab Mitte 2025 ausgeklammert)
nur REAL-GPS-Messungen; Durchfahrten & Zusatzfahrten raus
FAELLT_AUS_TF = true bewusst drin — extremster Verspätungsfall
21 Rohfelder → 10 (KEEP_COLS); Delays & stop_sequence abgeleitet
~11 % der Zeilen entfernt — übrig bleiben echte, planmäßige Halte mit GPS-Zeitstempeln, plus alle Ausfälle.
Kontextdaten machen Verspätung erst erklärbar
Ein Tram-Halt mit einer Verspätungszahl erklärt für sich genommen wenig. Erst der Kontext — Fahrplan, Wetter, Events, Geografie — macht Verspätung nachvollziehbar.
Also: vier gezielt recherchierte Zusatzquellen identifizieren und in den Master integrieren.
Soll-Fahrplan und Haltestellen-Stammdaten aus dem ZVV-Netz
Drei heterogene Quellen, konsolidiert auf Stundenbasis
Fehlende Open-Data-Quelle durch eigene Recherche geschlossen
Räumliche Zuordnung der Haltestellen per Spatial Join
Vier Quellen über drei Joins zum validierten Master
Vollständigkeitserhalt: Fehlwerte als null statt Zeilenverlust
Left Join überall: jede Tram-Fahrt bleibt erhalten. Fehlende Werte (Sensor-Ausfall, Event-freier Tag) werden null — statt die Zeile zu löschen.
Datenverlust durch Join ist der häufigste stille Bug in Merge-Pipelines. Left Join macht ihn unmöglich.
Datentyp- und Zeitraster-Fallstricke beim Zusammenführen
Analysefertige, reproduzierbare Datengrundlage
vbz_master.parquet — eine Zeile pro Halt (~230 je Fahrt), angereichert mit Fahrplan, Wetter, Events und Stadtkreis. 1:1 reproduzierbar über die 9 Notebooks.
Dokumentierte Scope-Entscheidungen dieser Ausbaustufe
Bewusst dokumentierte Grenzen, nicht übersehene Fehler. Transparenz über Known Issues gehört zu sauberem Data Engineering.
Erweiterungen für eine nächste Iteration
Ab Ende 2025 wechselt opentransportdata.swiss auf Format v2 (großer VBZ-Fahrplanwechsel Dez 2025) — Integration in einer späteren Iteration.
Durchgängige Fahrt-Identität herstellen — Voraussetzung für richtungsspezifische und Kaskadenanalysen.
Weitere abgeleitete Merkmale aus dem Master (z.B. Standzeit/Puffer je Halt) als Modellierungsgrundlage.
Das Resultat: ein neu prozessierter Master v2 ab den Roh-ZIPs mit den erweiterten Feldern.
Vom Rohdaten-Archiv zum Master-Datensatz
Data-Engineering-Pipeline für das Zürcher Tramnetz (VBZ) | 2023–2025
Recherche · Reduktion · Anreicherung · Vereinigung
Master-Datensatz als Data-Engineering-Fundament für das Analyse-Projekt zh-tram-flow