7 Punkte von GN⁺ 2024-04-29 | 2 Kommentare | Auf WhatsApp teilen

Einführung in PySheets

  • PySheets bietet eine Spreadsheet-UI für Python, mit der Nutzer explorative Data Science betreiben, Pandas verwenden, mit matplotlib Diagramme erstellen, Excel-Tabellen importieren, Daten analysieren und Berichte verfassen können
  • Der gesamte Python-Code wird im Browser ausgeführt, und auch PySheets selbst ist in Python geschrieben
  • Mit PySheets können Nutzer alle Python-Pakete und JS-Module laden, um das umfangreiche Data-Science-Ökosystem zu nutzen, ohne viel Code schreiben zu müssen

Hauptfunktionen von PySheets

  • Excel-Tabellen lassen sich schnell importieren und exportieren
  • Daten können mit Pandas erkundet und analysiert werden
  • Mit Matplotlib lassen sich KI-gestützte Visualisierungen einfach umsetzen
  • Mit minimalem Coding erhält man sofortige Ergebnisse
  • Teammitglieder können in geteilten Tabellen zusammenarbeiten
  • Es sind kein Setup, keine Kernel und keine teuren Cloud-Kosten nötig
  • Das gesamte Python- und JS-Ökosystem kann genutzt werden

Nutzung von PySheets

  • PySheets wurde am 27. April 2024 als Public Beta veröffentlicht
  • Am 21. und 23. April zeigte sich, dass der frühe Beta-Tester Bruno es mit Freude genutzt hat
  • Die Diagramme werden in PySheets erstellt und über die Funktion „embed“ bereitgestellt

Nutzerfeedback

  • „Es ist großartig, clientseitige Spreadsheets mit eingebautem Python nutzen zu können!“ - JG
  • „Ich mag die Flexibilität von Python sowie die klare Spreadsheet-Oberfläche und die Visualisierung.“ - *****@google.com
  • „PySheets ermöglicht die array-basierte Programmierung, die ich liebe!“ - FK
  • „Die Kombination aus Zellen und Python ist großartig!“ - FG
  • „PySheets ist einfach zu verwenden und anpassbar.“ - IT
  • „Eine einzigartige Verschmelzung von Jupyter-Notebook und Spreadsheet.“ - FE
  • „Man bekommt Flussdiagramme, Spreadsheets und Skripte auf einmal.“ - B2
  • „PySheets ist interessant, weil es das Open-Source-LTK verwendet.“ - AL
  • „Man kann Interaktion, Excel und alles andere nutzen, ohne den Browser zu verlassen!“ - PZ
  • „PySheets schließt die Lücke zwischen nichttechnischen Analysten und Data Scientists.“ - *****@miracalml.com
  • „Großartige Arbeit an PyScript. Die Plattform wird optimal genutzt.“ - *****@anaconda.com
  • „PySheets ist Excel für Menschen, die zuerst in Python denken.“ - NA

Preismodell

  • Kostenlos: unbegrenzte Bearbeitung von 5 Tabellen, 100 KI-Generierungen, Excel-Import/-Export
  • Pro ($19.99/Monat): Kollaboration, unbegrenzte Tabellen, Community-Support, unbegrenzte KI-Generierungen
  • Enterprise: Single Sign-On, On-Premises-Installation, lokaler Speicher, dedizierter Support, Audit-Dashboard

Vorstellung des Teams

  • Lead-Entwickler Chris Laffra verfügt über mehr als 30 Jahre Erfahrung im Aufbau von Entwickler-Tools, arbeitete bei IBM, Google und Uber und leitete Engineering-Teams bei Morgan Stanley, Bank of America und JP Morgan, um innovative Finanzprodukte zu entwickeln
  • Produktleiter Kurt Vile ist ein globaler Technologie-Executive mit Wall-Street-Hintergrund und strategischer IT-Vision. Er verfügt über Expertise in Technologieplattformen, Software Engineering, Daten, Data Science, General AI und Finanzen und bringt ein tiefes Verständnis für Spreadsheets und Datenanalyse mit
  • Chris und Kurt verbinden technisches und finanzielles Fachwissen mit einer Leidenschaft für herausragende User Experience

Meinung von GN+

  • PySheets wirkt wie ein interessantes Produkt, das die Lücke zwischen Data Scientists und Nichtentwicklern schließt, indem es Python direkt im Browser ausführt und eine vertraute Spreadsheet-Oberfläche für Datenanalyse bietet
  • Es gibt Ähnlichkeiten mit bestehenden Lösungen wie Jupyter Notebook oder Google Colab, unterscheidet sich aber durch die Bereitstellung einer Spreadsheet-UI. Für fortgeschrittene Analysen dürften jedoch weiterhin Python-Kenntnisse erforderlich sein
  • Die Preise wirken etwas hoch, sodass es für Einzelanwender schwer sein dürfte, sich durchzusetzen. Eine stärkere Fokussierung auf Enterprise-Funktionen für Geschäftskunden scheint sinnvoller
  • Das Einsatzpotenzial in Finanz- und Rechnungswesen scheint groß zu sein, ebenso der Wert als Kommunikations- und Kollaborationstool zwischen Management/Entscheidungsträgern und Datenanalysten
  • Es gibt bereits Produkte, die Funktionen wie Machine Learning und Visualisierung zu Spreadsheets hinzufügen, etwa MS Excel Ideas oder die Explore-Funktion von Google Sheets. Im Vergleich dazu bietet PySheets den Vorteil einer flexibleren und leistungsfähigeren Python-basierten Analyseumgebung

2 Kommentare

 
brainer 2024-04-29

So etwas ist gut.

 
GN⁺ 2024-04-29
Meinungen auf Hacker News
  • Ich bin der Autor von PySheets. Die App ist vollständig in Python geschrieben, nutzt PyScript-LTK auf PyScript und verwendet zwei Python-VMs: MicroPython und PyOdide.
    Der Webserver enthält nur minimale Logik und läuft mit gunicorn auf DigitalOcean; als Speicher dient Firestore. Sie ließe sich leicht als eigenständige On-Premises-App paketieren, aber das hatte bisher noch keine hohe Priorität. Ich würde gern Meinungen dazu hören, Web-Apps im Browser mit Python zu schreiben.

    • LTK, eine Python-Bibliothek zum Erstellen von Browser-UIs, ist Teil des Open-Source-Projekts PyScript. Siehe https://github.com/pyscript/ltk
      Falls ihr zur PyCon US in Pittsburgh kommt, werde ich voraussichtlich die meiste Zeit am Anaconda-Stand sein.
    • Mir gefällt die Idee. Ich bin kein kommerzieller Entwickler, sondern eher ein sogenannter wissenschaftlicher Programmierer, der Programmieren hauptsächlich als Werkzeug zur Problemlösung nutzt.
      Gelegentlich baue ich kleine Apps für Kollegen, die nicht programmieren; mit Tabellenkalkulationen kommen sie aber ziemlich gut zurecht. Im Moment bin ich recht stark an Python gebunden, doch die Auslieferung von Apps ist ein Ärgernis. Ich habe mir daher verschiedene Lösungen angesehen und mit flet auch ein paar Web-Apps gebaut, die auf fast allen getesteten Plattformen liefen. Dieser Ansatz sieht ebenfalls gut aus.
      Allerdings würde ich gern wissen, wie man einer Web-App Zugriff auf Dateien des Nutzers gibt, auch wenn ich verstehe, warum das aus Sicherheitsgründen schwierig sein sollte.
    • PyScript hat sich wirklich stark weiterentwickelt. Ich erinnere mich, dass das Laden im Browser früher 5–10 Sekunden dauerte; inzwischen wirkt es deutlich schneller.
    • Ich frage mich, warum es keine Unterstützung für ISO26300 gibt.
  • Das ist zwar unverhohlene Werbung, aber wenn es um größere Datensätze geht, lohnt sich ein Blick auf rowzero.io.
    Anfangs haben wir, ähnlich wie PySheets, eine vollständig Python-basierte Formelsprache implementiert. Bei Aufgaben wie dem Import großer CSVs wurde der Python-Interpreter jedoch zum Flaschenhals, und wegen des GIL konnten wir die Auswertung nicht parallelisieren. Auch die kleinen Syntaxunterschiede zwischen Python und der Excel-Formelsprache machten es für Business-Nutzer schwieriger.
    Deshalb haben wir die Tabellenkalkulations-Engine und die Formelsprache in Rust implementiert. Es gibt ein Python-Codefenster, in dem man beliebige Python-Funktionen schreiben kann, und diese Funktionen lassen sich von jeder Tabellenzelle aus als Formel aufrufen. Pandas-Dataframes können natürlich zwischen der Python-Welt und der Tabellenkalkulations-Welt hin- und hergereicht werden, sodass man 90 % der Vorteile von reinem Python ohne Performance-Einbußen erhält.

    • Rowzero ist eher eine bessere Tabellenkalkulation, PySheets eher ein besseres Jupyter Notebook. In manchen Punkten konvergieren sie, aber sie richten sich an unterschiedliche Zielgruppen; es gibt Überschneidungen und viel Raum für Nutzerpräferenzen.
      PySheets läuft derzeit im Browser auf WebAssembly, und die Beschränkungen dort wiegen schwerer als die Langsamkeit von Python. Einschließlich Interpreter und Bibliotheken stehen nur 4 GB adressierbarer Speicher zur Verfügung, und auch die Netzwerkbandbreite begrenzt clientseitige Berechnungen.
      Trotzdem kann PySheets ein auf einem Excel-Sheet mit 50.000 Zeilen basierendes Sheet in 0,5 Sekunden rendern; eine vollständige End-to-End-Neuberechnung dauert etwa 20 Sekunden. Ohne externen Kernel, der Polars auf großen Datensätzen ausführen kann, sind die Möglichkeiten im Browser begrenzt, aber für die meisten dürfte der Funktionsumfang von PySheets ausreichen.
      Als Autor von PySheets fühle ich mich geehrt, dass ein „Konkurrent“ uns als Bedrohung sieht. Rowzero ist ebenfalls ziemlich beeindruckend und gut gemacht :-)
    • Rowzero sieht großartig aus, aber sowohl Rowzero als auch PySheets scheinen meiner Meinung nach auf die falschen Nutzer zu zielen. Für erste Traction sollte man eher Finanzpraktiker als Datenwissenschaftler ansprechen.
      Als Datenwissenschaftler würde ich es nutzen, als Finanzverantwortlicher gäbe es Gründe dagegen. 1) Es läuft in der Cloud; wegen sensibler Daten müsste es lokal oder on-premises laufen oder in GCP/AWS/Azure integriert sein. Mit einem Rust-Backend wäre das in Ordnung; bei Python müsste man ein Bündel von Bibliotheken per Docker mit ausliefern.
      2) Man müsste auch Alternativen zu PowerPoint/Word bauen oder zumindest einfaches Kopieren und Einfügen nach PowerPoint/Word ermöglichen. 3) Big-Data- und DB-Anbindungen sollten stark in den Vordergrund rücken. Dort liegt derzeit der Engpass, und Python-APIs für im Finanzbereich beliebte Dienste wie Bloomberg, Factset und CapitalIQ sollten bei vorhandenem Abo sofort nutzbar sein.
      4) Auch Text muss verarbeitet werden. Nötig sind Interfaces für Textanalyse wie Embeddings für Ähnlichkeit, Fuzzy Matching in Python, grünes Hervorheben von Keywords oder Suche im Fließtext. Im Finanzbereich arbeitet man auch häufig mit PDFs; es wäre gut, wenn alles auf einer Plattform wäre, statt wie jetzt zwei Fenster zu öffnen.
    • Ich würde gern mehr darüber erfahren, wie ihr im Ausführungs-Engine die DAG in Rust implementiert habt. Ich baue etwas Ähnliches, allerdings nicht für Tabellenkalkulationen, sondern für eine Sprache: https://docs.yoctoproject.org/bitbake/bitbake-user-manual/bi...
      Ich habe kein gutes Beispiel dafür gefunden, wie man so etwas in Rust implementiert. Ich frage mich, ob man eine Graph-Bibliothek wie petgraph verwenden oder es selbst bauen sollte.
    • Beide Lösungen sind aus unterschiedlichen Gründen interessant. Du sprachst von „90 % der Vorteile“; kannst du Beispiele dafür nennen, was die übrigen 10 % sind, die einen daran hindern könnten, diese Lösung zu verwenden?
    • Ich frage mich, ob Row Zero oder PySheets Open Source sind.
  • Als nicht browserbasierte Python-Tabellenkalkulations-App gibt es https://pyspread.gitlab.io/

  • Gute Idee. Sie bietet Nicht-Entwicklern eine leicht bedienbare GUI und datenorientierten Nutzern gleichzeitig Pandas.
    Ich frage mich, ob es ähnliche, aber selbst hostbare Projekte gibt. Gesundheitsdaten bei einem externen Dienst hochzuladen, fühlt sich unangenehm an.

    • Von dem, was ich ausprobiert habe, gibt es etwas ziemlich Gutes namens MitoSheet. Es läuft lokal und hat gute Funktionen, unterstützte aber, als ich zuletzt nachgesehen habe, keine TSV-Dateien. Soweit ich weiß, wird es noch aktiv entwickelt und entstand mit Unterstützung von YCombinator.
      [0] https://www.trymito.io/
    • grist ist in gewisser Weise ähnlich. Es ist ein Hybrid aus Spreadsheet und Datenbank, man kann Python in Formeln verwenden, und es gibt auch eine Option für Self-Hosting.
      https://www.getgrist.com/product/self-managed
    • Ich habe buckaroo[1] als besseren DataFrame-Viewer für Jupyter gebaut; es hat auch eingebaute zusammenfassende Statistiken. Es ist ein Tool, das Leuten, die bereits pandas/polars nutzen, eine bessere DataFrame-Erfahrung bieten soll.
      Alles ist erweiterbar[2], sodass man Statistiken und Transformationen an den eigenen Workflow anpassen kann.
      [1] https://github.com/paddymul/buckaroo
      [2] https://youtu.be/GPl6_9n31NE
    • Der PySheets-Server kann überall laufen. Zum Beispiel auf meinem Notebook, bei Google AppEngine oder auf DigitalOcean.
      Er wurde mit Blick auf On-Premises entwickelt, damit er auch in Unternehmen bereitgestellt werden kann, die ihre Daten nicht mit externen Diensten teilen möchten. Allerdings wird in PySheets nur das gespeichert, was direkt im Sheet selbst steht. In den meisten Anwendungsfällen werden Daten von woanders geladen, gefiltert und transformiert und anschließend die Ergebnisse gerendert. Trotzdem könnte Self-Hosting ein interessanter Use Case sein.
    • In der Dokumentation meines Projekts in diesem Bereich habe ich eine eigene Seite für verwandte Projekte angelegt. Wenn jemand bis zur Doku kommt und buckaroo sein Problem nicht löst, sollte er meiner Meinung nach etwas anderes finden können, das hilft.
      https://buckaroo-data.readthedocs.io/en/latest/articles/rela...
  • Ich frage mich, ob es vielleicht ein Video-Walkthrough oder ein Tutorial geben wird. Nur anhand der Landingpage ist schwer zu erkennen, wie der Workflow aussieht und welche Use Cases PySheets löst.
    Ich möchte mich nicht registrieren, nur um das herauszufinden.

    • Ich plane, nächste Woche ein paar Videos zu machen. Beim wöchentlichen PyScript-FUN-Meeting habe ich eine ausführliche Demo gezeigt, aber sie wurde nicht aufgezeichnet.
  • Ich habe RowZero und PySheets etwa 30 Minuten ausprobiert. RowZero scheint riesige Datensätze zu unterstützen.
    Für Python-Spreadsheets habe ich bisher quadratichq verwendet, aber inzwischen wirkt RowZero funktionsreicher und zugleich günstiger. Ich dachte, PySheets wäre Open Source, aber es scheint geschlossen zu sein; der Preis ist doppelt so hoch und es ist auf 50 Zeilen begrenzt. Am Ende habe ich nicht einmal herausgefunden, wie man https://www.w3resource.com/python-exercises/pandas/excel/Sal... in PySheets importiert.
    visidata kannte ich nicht, aber es ist wirklich großartig. Ein informativer Beitrag.

  • In den 2000ern und frühen 2010ern versuchte das Londoner Startup Resolver Systems[1], Python und Spreadsheets zu kombinieren.
    Am Ende war es nicht erfolgreich, aber ich frage mich, ob das daran lag, dass Python damals deutlich weniger bekannt war als heute.
    [1] http://www.resolversystems.com

    • Stimmt. Es gab ein echtes Produkt, und wenn ich mich richtig erinnere, habe ich es heruntergeladen und ausprobiert.
      Später waren das, glaube ich, teilweise dieselben Leute, die PythonAnywhere gegründet haben, und PythonAnywhere habe ich ebenfalls genutzt. Kürzlich habe ich irgendwo gelesen, dass es von Anaconda übernommen wurde.
  • Sieht ziemlich cool aus. Für alle, die es nervt, dass Excel, Sheets und Numbers einen nicht in einer ordentlichen Sprache wie Python programmieren lassen und danach visualisieren und abfragen können, ist das attraktiv.
    Allerdings sehe ich in der dritten Zeile der Webseite AI-driven. Das lässt mich vermuten, dass das für die Ersteller der Seite eine wichtige Funktion ist.
    Wenn man mit Ctrl-F nach „ai-driven“ sucht, kommt es auf der Seite noch einmal vor: „einfache KI-gestützte Visualisierungen mit Matplotlib erstellen“. Auf der Landingpage gibt es keine weitere Erklärung, und Dokumentation habe ich auch nicht gefunden. Bei der Suche nach „pysheets docs“ stieß ich auf eine gleichnamige Python-Bibliothek.
    Letzte Woche habe ich zum ersten Mal ChatGPT benutzt, um meinen Lebenslauf prüfen zu lassen. Normalerweise würde ich das nicht tun, aber das Unternehmen, bei dem ich mich beworben habe, betonte stark, dass es Code mit ChatGPT generiert und überprüft. Ich habe es skeptisch selbst ausprobiert, und das Ergebnis war beeindruckend.
    Allerdings wies ChatGPT auf Syntaxfehler in meinem Lebenslauf hin, die gar nicht existierten. Der in der Rückmeldung kritisierte Satz kam nirgendwo im Lebenslauf vor, nicht einmal etwas Ähnliches. Sicher, irgendwo tief in den 1000 Schichten des Netzwerks gab es wohl eine Ähnlichkeit zu etwas, das fehlerhaft war, aber es wäre gut, wenn man so etwas effektiv debuggen könnte.
    Wenn ich also in einem Tabellenkalkulationsprogramm ein unerklärtes AI-driven sehe, mache ich mir große Sorgen, ob Daten halluziniert werden. Ich fände es gut, wenn die Autoren erklären würden, was genau sie damit meinen. Ich möchte wissen, ob Diagramme zu 99 % stimmen, aber gelegentlich halluziniert sind, oder was sonst passiert. Wenn ich das wüsste, würde ich mich vielleicht sofort für die Beta anmelden.
    Als letzter Witz: Wie groß ist wohl die Wahrscheinlichkeit, dass einer der Autoren Kurt Vile heißt: https://www.youtube.com/watch?v=4uAXMl-Bfiw

    • Wenn man sich bei PySheets anmeldet, bekommt man 7 Tutorials. Zwei davon erklären, wie man mit KI Daten abruft, in einen Dataframe umwandelt und mit Matplotlib visualisiert.
      Der generierte Code ist beeindruckend und kann angehenden Data Scientists helfen, sich in den Pandas- und Pyplot-APIs zurechtzufinden. Die KI wird verwendet, um Python-Code zu generieren, nicht um die Daten im Sheet zu analysieren oder zu erzeugen. Wir werden das auf der Landingpage klarstellen.
      Das hier ist ein anderer Kurt Vile. :-)
  • Sieht nach einem sehr guten und ausgereiften Projekt aus. Python in Tabellenkalkulationen zu nutzen, ist eine gute Idee, und Excel macht das offenbar inzwischen auch. Trotzdem ist es schön, eine so klare und einfach zu nutzende Umsetzung zu sehen.
    Das ist keine Kritik an PySheets selbst, aber ich wünschte, Tabellenkalkulationen wären strikter. Zum Beispiel, indem Sheets in ein Tabellenformat gezwungen werden. So würden Menschen in Organisationen später kein furchtbares Chaos erzeugen, das andere mit Nicht-Tabellenkalkulations-Tools auseinandernehmen und reverse-engineeren müssen.

    • Ich hatte mir vorgestellt, dass viele Anwendungsfälle nicht darin bestehen, Daten im Sheet zu speichern, sondern PySheets eher wie ein besseres Jupyter Notebook zu verwenden.
      Also Daten abrufen, in ein Dataframe umwandeln, bereinigen, analysieren, trainieren und exportieren. Zum Beispiel gibt es ein Sheet, das PySheets-Nutzungsmetriken lädt, in einen Dataframe umwandelt und als Diagramm darstellt, das dann als Live-Chart auf der Landingpage von pysheets.app gerendert wird.
  • Interessante Software/App. In unserem Unternehmen gibt es derzeit viele Excel-Dateien, in denen eine Menge Geschäftslogik in Excel-Formeln steckt.
    Ich frage mich, ob beim Import einer Excel-Datei in PySheets auch die Formeln der ursprünglichen Excel-Datei erkannt werden. Außerdem würde ich gern wissen, ob es ein Video gibt, das zeigt, was PySheet kann.

    • Wenn man Sheets aus Google Sheets ausschneidet und in PySheets einfügt, funktioniert das ziemlich gut. Derzeit verarbeitet PySheets keine Excel-Funktionen.
      Das steht auf einer möglichen Roadmap, aber so weit sind wir noch nicht. Nachdem ich im Februar meinen vorherigen Job gekündigt habe, habe ich tatsächlich erst etwa drei Monate an PySheets gearbeitet.