Wie viele Python-Datenexperten greife ich normalerweise zu Jupyter-Notebooks, wenn ich eine ordnungsgemäße Analyse oder einen Bericht erstellen muss. Ich greife nicht gern danach. Ich möchte, dass meine Analyse schnell genug ist, dass ich ein paar Codezeilen in einer IPython-Konsole ausführen und damit Schluss machen kann. Aber das ist nie der Fall. Und wie wir wissen, führt Analyse zu Analyse, und wir müssen unsere alten Zahlen noch einmal durchgehen.
Wie ich vorher geschriebenIch bin so wählerisch, dass ich sogar ein ganzes Python-Paket für eine einzelne Analyse erstelle. Dennoch schreibe ich den Bericht gerne in ein Notizbuch, damit meine Prosa, mein Code und meine Handlungen alle an einem reproduzierbaren Ort sind.
Reproduzierbar ist eigentlich ein schlechtes Wort. Niemand will reproduzieren eine Analyse oder ein Auftrag. Sie wollen ändern diesen Job und führen Sie ihn unter anderen Bedingungen erneut aus. Vielleicht sollten wir gehen Reproduzierbarkeit zu den Krisen in den Sozial- und Kognitionswissenschaften und konzentrieren sich auf Lauffähigkeit für Code.
Wie auch immer, ich schweife ab.
Bei der Erstellung eines Jupyter-Notebooks als Bericht gibt es viele Probleme. Niemand sonst will es lesen. Techniker wollen keinen Jupyter-Server hochfahren, um ihn auszuführen, und Nicht-Techniker können ihn nicht einmal rendern. Natürlich könnte man ihnen ein GitHub-Konto einrichten und es dort ansehen, aber das ist für alle irgendwie nervig. Selbst wenn Sie das Notizbuch rendern können, ist mein Code hässlich und lenkt ab.
Meine Lösung ist nicht großartig, aber ich rendere den Bericht gerne als HTML-Datei. Jeder hat einen Browser, additionally kann jeder ihn öffnen. Wenn Sie mit der Possibility zum Ausblenden des Codes rendern, wird der Bericht lesbar.
Ich bin nicht der Erste, der das erfindet. Chris Mentioned hat ein tolles Blogbeitrag von vor 9 Jahren darüber, was ich in einige kopiert habe alte Notizen ungefähr zu dieser Zeit. Irgendwann in den letzten 9 Jahren funktionierten die Lösungen in diesem Blogbeitrag jedoch nicht mehr. Im gleichen Zeitraum habe ich mich weniger mit der Datenwissenschaft beschäftigt und habe aufgehört, so viele Analysen durchzuführen, dass es mir einfach aufgehört hat, sich darum zu kümmern.
Vor kurzem durfte ich wieder für ein paar Tage Datenwissenschaftler sein und einen Jupyter-Bericht schreiben. Ich habe wieder entdeckt, dass das Verstecken des Codes beim Rendern von Notizbüchern in HTML fehlerhaft battle. Glücklicherweise gab es in den letzten 9 Jahren eine Reihe von Fortschritten. Das haben wir jetzt Viertel. Es macht viel mehr Dinge, als ich hier beschreiben kann. Eine Sache, die ich beschreiben werde, ist, wie Jupyter-Notizbücher in andere Formate wie HTML gerendert werden. Es verfügt außerdem über eine integrierte Unterstützung zum Ausblenden von Code. Um das Ganze abzurunden, sieht das Design viel schöner aus als bei einem typisch gerenderten Jupyter-Pocket book.
Um ein Jupyter-Pocket book in HTML zu rendern, müssen Sie Quarto installieren und dann Folgendes über die Befehlszeile ausführen:
quarto render path/to/your_notebook.ipynb --to html
Anschließend wird in die HTML-Datei geschrieben path/to/your_notebook.html
. Der Standardbericht verbirgt den Code jedoch nicht. Der Bericht wird außerdem auf eine HTML-Datei und einen separaten Ordner mit Styling-Dateien verteilt. Sie werden das nicht alles zusammenpacken, um es jemandem zu schicken. Stattdessen können Sie der obersten Zelle Ihres Notizbuchs Folgendes hinzufügen (Hinweis: Die Zelle muss eine sein Roh Zelle anstelle einer Python- oder Markdown-Zelle):
---
title: Your Report Title
format:
html:
code-fold: true
code-tools: true
self-contained: true
---
Als Beispiel ist hier ein Screenshot eines Notizbuchs, das ich erstellt habe:
Und hier ist das von Quarto gerenderte HTML:
Schön, oder?
Ich habe zwei Bedenken gegenüber dieser Methode der Übermittlung von Berichten:
- Es ist schöner, jemanden auf eine tatsächliche Web site zu verweisen, als eine Datei zu senden. Sie können die Datei zwar in Google Drive ablegen und jemanden dorthin verweisen, Drive rendert den HTML-Code jedoch nicht nativ. Wenn Sie additionally den Bericht aktualisieren möchten, müssen Sie die Datei erneut senden.
- Es gibt keine Möglichkeit für Leute, Kommentare zu hinterlassen, wie sie es in einem Google-Dokument tun würden.
Wenn Sie additionally bessere Ideen haben, lassen Sie es mich wissen!