Mit Jupyter über die Grenzen von Excel hinaus

Immer wieder sind wir erstaunt, welche Herausforderungen unsere Kunden mit Excel lösen können.
Beispielsweise lesen sie hochauflösende Videodaten als Tabelle ein und zeigen diese Bild für Bild mit einer eingefärbten Zelle pro Pixel an. Darauf aufbauend sind auch Bildkorrekturen oder Analysen zu maximalen Helligkeitswerten keine Herausforderung mehr. Excel scheint wahrlich ein leicht zu lernendes Werkzeug zu sein, bei dem man wohl nie wirklich alle Tricks kennt. Allerdings sieht ja bekanntlich auch jede Schraube aus wie ein Nagel, wenn man seinen Lieblingshammer hält. Um bei dem Bild zu bleiben: In diesem Artikel geht es nicht um Schraubendreher sondern vielmehr um Akkuschrauber. Unsere Kunden finden anfänglich oft kreative Lösungen für die Verarbeitung ihrer Daten. Doch dann stoßen sie auf das Problem, dass einige der Ansätze langfristig nicht mit wachsenden Datenmengen skalieren.

Was hat es mit Jupyter auf sich?

Dieser Artikel stellt Jupyter vor, ein Werkzeug, das ähnlich wie Excel zum explorativen Arbeiten mit Daten einlädt. Es ist aber auch dafür geeignet, einmal entwickelte Prozesse vielfach auf unzählige Dateien anzuwenden.

JupyterLab ist eine web-basierte Entwicklungsplattform für Jupyter Notebooks. Das sind Dokumente, die nicht nur formatierten Text beinhalten, sondern auch Programmcode, der live ausgeführt werden kann. Du kannst zum Beispiel Code schreiben, der Daten einliest, Formeln berechnet und Graphen zeichnet.

Beispiel eines Jupyter Notebooks
Laden und Anzeigen einer CSV Datei in einem Jupyter Notebook

Für den Programmcode kommt typischerweise die einstiegsfreundliche Sprache Python zum Einsatz. Für sie existieren viele Programmbibliotheken, die für das Arbeiten mit Daten, Statistiken, Graphen, mathematischen Formeln und vielen weiteren Bereichen nützliche Funktionen bereitstellen. Den Einstieg erleichtert ebenfalls, dass über die Bibliotheken der Import und Export von und zu Excel Dateien möglich ist. Ein Umstieg muss also nicht vollständig oder gar auf einen Schlag erfolgen.
Eine gewisse Lernkurve musst Du selbstverständlich trotzdem überwinden, doch dabei können die vielseitigen online verfügbaren Kurse helfen. Die Installation einer Jupyter Umgebung lokal oder zentral ist einfach (siehe Dokumentation von Project Jupyter), danach ist für den Zugriff lediglich ein Web-Browser nötig.

Wenn Du schon neugierig bist, probiere einfach diese Jupyter live-demo aus!

Nachdem Du den Link angeklickt hast und die Seite fertig geladen hat, siehst Du in der mittleren Spalte ein Jupyter Notebook mit der Überschrift „The Lorenz Differential Equations“. Durch wiederholtes Drücken des Play Buttons in der Menüzeile führt Jupyter nach und nach die einzelnen Zellen des Notebooks aus und zeigt die Ausgaben an.

Welche Stärken bringt Jupyter mit?

Unabhängig davon, ob Du Bilddaten oder Börsenkurse analysieren möchtest, bringt das Arbeiten in Jupyter Vorteile mit sich, die sich vor allem bei komplexen Sachverhalten zeigen.

Die Übersicht und damit auch die Verständlichkeit und Wartbarkeit profitieren davon, dass der Code und die zugehörige Ausgabe nah beieinander stehen. Das ist bei Excel-Zellen zwar ähnlich, jedoch ist ein Code-Fragment in Jupyter Notebooks nicht auf eine Zeile beschränkt. Außerdem kann es zusätzlich mit erklärenden Kommentaren versehen werden. Wenn Du erst einmal gelernt hast, sprechende Variablennamen zu vergeben und deine Logik übersichtlich zu strukturieren, wird es Dir leicht gelingen gut verständlichen und leicht zu lesenden Programmcode zu schreiben.

Wusstest Du, dass wir bereits eine Serie von Artikeln zum Thema Clean Code haben?

Die bereits erwähnten Bibliotheken machen die Notebook-Entwicklung flexibel. Für das Abrufen von Live-Daten über Programmschnittstellen aus dem Internet oder auch von internen Datenbanken gibt es sehr häufig bereits im Python Package Index veröffentlichte Pakete, die über den Paketmanager pip bequem installiert werden können.

Ein Beispiel aus unserem Alltag

Der Knackpunkt, der uns dazu brachte auf Jupyter zu setzen, war die Skalierbarkeit, die die Jupyter-Welt mit sich bringt.
In einem unserer Projekte werden mithilfe von Excel Berichte zu Experimenten erstellt. Dafür müssen verschiedene Messdaten als CSV importiert und Kenndaten zu den verwendeten Proben aus einer Datenbank übertragen werden. Auch eine von einem Messgerät geschriebene Logdatei ist Teil des Berichts. Doch es ist klar, dass die Anzahl an täglich durchgeführten Experimenten zunehmend ansteigt und die Forschenden dementsprechend mehr mit manuellem Kopieren der verschiedenen Daten beschäftigt sind. Dies ist ein arbeitsintensiver und dadurch fehleranfälliger Prozess.

Gemeinsam mit dem Kunden bilden wir die Verarbeitungsschritte von Excel in einem Jupyter Notebook nach. Um einen Bericht zu erstellen, geben die Forschenden nun lediglich die Bezeichner von Experiment und verwendeter Probe ein. Anhand von diesen lädt das Notebook automatisiert sämtliche Daten aus den Dateien und Datenbanken. Nach der Verarbeitung wird bei Bedarf der Bericht per Knopfdruck als PDF exportiert.

Der Python-Code ist mit geringen Anpassungen auch außerhalb der Jupyter Umgebung lauffähig – beispielsweise als Teil einer Verarbeitungs-Pipeline, die beginnt, sobald neue Experimentdaten verfügbar sind. So werden aus zeitintensiven Untersuchungen automatisiert laufende Verarbeitungsschritte, deren Ergebnisse innerhalb von Sekunden nach Abschluss des Experiments zur Verfügung stehen.

Selbstverständlich muss man sich an das Arbeiten mit Python und Jupyter erst gewöhnen. Gerade am Anfang, wenn man mit einfachen Aufgaben beginnt, ist die Versuchung groß „das schnell in Excel zu machen“. Ich kann nur sagen: Bleib dran, es lohnt sich! Zudem gibt es ausgesprochen viele Ressourcen, die den Einstieg erleichtern. Wenn Du schon Erfahrung mit Programmiersprachen hast, besitzt Du bereits einen großen Vorsprung.

Fazit

Genauso wie man nicht für jede lockere Schraube den Akkuschrauber zückt, sind Jupyter Notebooks kein bedingungsloser Ersatz für Excel. Dieser Artikel soll lediglich dazu anregen ab und an inne zu halten und die Frage zuzulassen, ob ein bestimmter Arbeitsprozess eventuell so komplex ist, dass ein mächtigeres Werkzeug als Excel die bessere Wahl ist.

 

Weiterführende Links:

Letzte Artikel von Patrick Gmelch (Alle anzeigen)