7 points par GN⁺ 2024-04-29 | 2 commentaires | Partager sur WhatsApp

Présentation de PySheets

  • PySheets fournit une interface de tableur pour Python, permettant aux utilisateurs de faire de la data science exploratoire, d’utiliser Pandas, de créer des graphiques avec matplotlib, d’importer des feuilles Excel, d’analyser des données et de rédiger des rapports
  • Tout le code Python s’exécute dans le navigateur et PySheets lui-même est également écrit en Python
  • Avec PySheets, les utilisateurs peuvent charger tous les packages Python et modules JS pour tirer parti du vaste écosystème de la data science sans avoir à écrire beaucoup de code

Principales fonctionnalités de PySheets

  • Importation et exportation rapides de feuilles Excel
  • Exploration et analyse des données avec Pandas
  • Visualisations basées sur l’IA faciles à réaliser avec Matplotlib
  • Résultats immédiats avec un minimum de code
  • Collaboration avec les membres de l’équipe sur des feuilles partagées
  • Aucun réglage, noyau ou coûts cloud élevés nécessaires
  • Exploitation de l’ensemble des écosystèmes Python et JS

Utilisation actuelle de PySheets

  • PySheets a été lancé en bêta publique le 27 avril 2024
  • Les 21 et 23 avril, il est apparu que Bruno, l’un des premiers bêta-testeurs, l’avait utilisé avec plaisir
  • Les graphiques sont générés dans PySheets et fournis via la fonctionnalité embed

Retours des utilisateurs

  • « C’est génial de pouvoir utiliser un tableur côté client avec Python intégré ! » - JG
  • « J’aime la flexibilité de Python, ainsi que l’interface de tableur claire et les visualisations. » - *****@google.com
  • « PySheets permet le codage orienté tableaux que j’adore ! » - FK
  • « Combiner les cellules et Python, c’est génial ! » - FG
  • « PySheets est facile à utiliser et personnalisable. » - IT
  • « Une fusion unique entre notebook Jupyter et tableur. » - FE
  • « Vous obtenez à la fois des organigrammes de processus, des feuilles de calcul et des scripts. » - B2
  • « PySheets est intéressant car il utilise LTK open source. » - AL
  • « On peut interagir, utiliser Excel, tout faire sans quitter le navigateur ! » - PZ
  • « PySheets comble l’écart entre les analystes non techniques et les data scientists. » - *****@miracalml.com
  • « Excellent travail sur PyScript. Vous exploitez pleinement la plateforme. » - *****@anaconda.com
  • « PySheets, c’est Excel pour ceux qui codent d’abord en Python. » - NA

Politique tarifaire

  • Gratuit : édition illimitée de 5 feuilles, 100 générations IA, import/export Excel
  • Pro (19,99 $/mois) : collaboration, feuilles illimitées, support communautaire, générations IA illimitées
  • Enterprise : Single Sign-On, installation on-premise, stockage local, support dédié, tableau de bord d’audit

Présentation de l’équipe

  • Le développeur principal Chris Laffra possède plus de 30 ans d’expérience dans la création d’outils de développement ; il a travaillé chez IBM, Google et Uber, et a dirigé des équipes d’ingénierie chez Morgan Stanley, Bank of America et JP Morgan pour concevoir des produits financiers innovants
  • Le responsable produit Kurt Vile est un dirigeant technologique mondial issu de Wall Street, doté d’une vision IT stratégique ; il possède une expertise en plateformes technologiques, ingénierie logicielle, data, data science, IA générale et finance, ainsi qu’une compréhension instinctive des tableurs et de l’analyse de données
  • Chris et Kurt combinent expertise technique et financière avec une passion pour une excellente expérience utilisateur

L’avis de GN+

  • PySheets semble être un produit intéressant qui réduit l’écart entre les data scientists et les non-développeurs en exécutant Python directement dans le navigateur et en proposant une interface de tableur familière pour l’analyse de données
  • Il présente des similitudes avec Jupyter Notebook ou Google Colab, mais se distingue par son interface de tableur. Cela dit, des compétences en programmation Python resteront probablement nécessaires pour les analyses avancées
  • Le prix paraît plutôt élevé, ce qui risque de compliquer l’adoption par les utilisateurs individuels ; il semblerait préférable de se concentrer davantage sur les fonctionnalités Enterprise destinées aux clients professionnels
  • Le potentiel d’usage semble important dans les domaines de la finance et de la comptabilité, et sa valeur comme outil de communication et de collaboration entre dirigeants/décideurs et analystes de données paraît également prometteuse
  • Parmi les produits qui ajoutent au tableur des fonctions comme le machine learning ou la visualisation, on trouve Excel Ideas de Microsoft ou Explore de Google Sheets ; par rapport à eux, PySheets a l’avantage d’offrir un environnement d’analyse basé sur Python plus souple et plus puissant

2 commentaires

 
brainer 2024-04-29

C’est sympa, ce genre de chose.

 
GN⁺ 2024-04-29
Commentaires Hacker News
  • Je suis l’auteur de PySheets. L’application est entièrement écrite en Python, s’appuie sur PyScript avec PyScript-LTK et utilise deux VM Python, MicroPython et PyOdide
    Le serveur web se limite à une logique minimale exécutée par gunicorn sur DigitalOcean, et le stockage repose sur Firestore. Il serait facile d’en faire une application autonome on-premise, mais ce n’est pas encore une priorité élevée. J’aimerais avoir des retours sur cette manière d’écrire des applications web en Python dans le navigateur

    • LTK, une bibliothèque Python pour créer des interfaces navigateur, fait partie du projet open source PyScript. Voir https://github.com/pyscript/ltk
      Si vous prévoyez d’aller à PyCon US à Pittsburgh, je serai probablement la plupart du temps au stand Anaconda
    • J’aime beaucoup l’idée. Je ne suis pas développeur commercial, je me rapproche plutôt de ce qu’on pourrait appeler un programmeur scientifique, qui utilise surtout la programmation comme outil de résolution de problèmes
      Il m’arrive de créer de petites applications pour des collègues qui ne programment pas, et eux se débrouillent plutôt bien avec les tableurs. Pour l’instant je suis encore assez lié à Python, mais le déploiement des applis est pénible, donc j’ai étudié plusieurs solutions, et j’ai aussi créé quelques applications web avec flet, qui tournaient sur presque toutes les plateformes que j’ai testées. Cette approche aussi me paraît intéressante
      En revanche, même si je comprends pourquoi cela doit être difficile pour des raisons de sécurité, j’aimerais savoir comment permettre à une application web d’accéder aux fichiers de l’utilisateur
    • PyScript a vraiment énormément progressé. Je me souviens qu’avant il fallait 5 à 10 secondes pour le charger dans le navigateur, alors que maintenant cela paraît bien plus rapide
    • Je me demande pourquoi il n’y a pas de prise en charge de ISO26300
  • C’est de l’autopromotion assumée, mais si vous travaillez avec des jeux de données plus volumineux, rowzero.io peut aussi valoir le détour
    Au départ, comme PySheets, nous avions implémenté un langage de formules entièrement en Python, mais sur des tâches comme l’import de gros CSV, l’interpréteur Python devenait le goulet d’étranglement, et le GIL empêchait de paralléliser l’évaluation. Les petites différences de syntaxe entre Python et le langage de formules d’Excel rendaient aussi le tout plus difficile pour les utilisateurs métier
    Nous avons donc implémenté le moteur de tableur et le langage de formules en Rust. Il y a une fenêtre de code Python dans laquelle on peut écrire des fonctions Python arbitraires, et ces fonctions peuvent être appelées comme formules depuis n’importe quelle cellule du tableur. On peut aussi échanger naturellement des DataFrames Pandas entre l’espace Python et l’espace tableur, ce qui permet d’obtenir 90 % des avantages du Python pur sans sacrifier les performances

    • Rowzero est un meilleur tableur, tandis que PySheets se rapproche davantage d’un meilleur Jupyter Notebook. Sur certains points ils convergent, mais comme les utilisateurs visés diffèrent, il y a à la fois des recouvrements et une large place pour les préférences des utilisateurs
      PySheets fonctionne actuellement dans le navigateur sur WebAssembly, et les contraintes ici vont au-delà du simple fait que Python soit lent. La mémoire adressable est limitée à 4 Go, interpréteur et bibliothèques compris, et la bande passante réseau fait aussi partie des limites du calcul côté client
      Malgré cela, PySheets peut afficher en 0,5 seconde une feuille basée sur un fichier Excel de 50 000 lignes, et un recalcul complet de bout en bout prend environ 20 secondes. Il y a forcément des limites à ce qu’on peut faire dans le navigateur sans noyau externe capable d’exécuter Polars sur de gros jeux de données, mais pour la plupart des usages, ce que propose PySheets devrait suffire
      En tant qu’auteur de PySheets, c’est un honneur de voir qu’un « concurrent » nous considère comme une menace. Rowzero est lui aussi assez impressionnant et bien conçu :-)
    • Rowzero a l’air excellent, mais Rowzero comme PySheets semblent tous deux viser le mauvais public. À mon avis, pour obtenir une traction initiale, il vaudrait mieux cibler les professionnels de la finance plutôt que les data scientists
      En tant que data scientist, je l’utiliserais, mais en tant que financier, j’aurais des raisons de ne pas l’utiliser. 1) Cela fonctionne dans le cloud, alors qu’il s’agit de données sensibles, donc il faudrait que cela tourne en local ou on-premise, ou que ce soit intégré à GCP/AWS/Azure. Avec un backend Rust, pas de problème ; avec Python, il faudrait distribuer avec Docker un bundle de bibliothèques
      2) Il faudrait aussi créer des alternatives à PowerPoint/Word, ou au minimum rendre le copier-coller vers PowerPoint/Word très simple. 3) Il faut fortement mettre en avant le big data et la connexion aux bases de données. C’est là que se situe le goulet d’étranglement aujourd’hui, et ce serait utile de proposer directement, dès lors qu’on dispose d’un abonnement, les API Python de services très utilisés dans la finance comme Bloomberg, Factset ou CapitalIQ
      4) Il faut aussi traiter le texte. Il faut une interface d’analyse textuelle avec embeddings pour la similarité, fuzzy matching en Python, mise en évidence en vert des mots-clés ou recherche plein texte. En finance, on manipule aussi souvent des PDF ; au lieu d’ouvrir deux fenêtres comme aujourd’hui, ce serait bien d’avoir tout cela dans une seule plateforme
    • Je me demande si vous pourriez expliquer plus en détail comment vous avez implémenté le DAG en Rust dans le moteur d’exécution. Ce n’est pas pour un tableur, mais je construis quelque chose de similaire pour un langage : https://docs.yoctoproject.org/bitbake/bitbake-user-manual/bi...
      Je n’ai pas trouvé de bons exemples pour implémenter ce genre de chose en Rust. Je me demande s’il faut utiliser une bibliothèque de graphes comme petgraph ou le faire soi-même
    • Les deux solutions sont intéressantes pour des raisons différentes. Vous avez parlé de « 90 % des avantages » ; je me demande si vous pourriez donner des exemples des 10 % restants qui pourraient empêcher d’utiliser cette solution
    • Je me demande si Row Zero ou PySheets sont open source
  • Parmi les applications de tableur en Python qui ne passent pas par le navigateur, il y a aussi https://pyspread.gitlab.io/

  • C’est une bonne idée. Donner une GUI facile à utiliser aux non-développeurs tout en fournissant Pandas aux utilisateurs orientés données. Je me demande s’il existe un projet similaire mais auto-hébergeable. Mettre des données de santé sur un service externe est gênant.

    • Parmi ceux que j’ai essayés, il y a MitoSheet, qui est plutôt bien. Ça tourne en local et il a de bonnes fonctionnalités, mais la dernière fois que j’ai vérifié, il ne prenait pas en charge les fichiers TSV. D’après ce que je sais, le développement est toujours actif et le projet a été soutenu par Y Combinator. [0] https://www.trymito.io/
    • grist est assez similaire. C’est un hybride entre tableur et base de données, on peut utiliser Python dans les formules, et il existe aussi une option auto-hébergée. https://www.getgrist.com/product/self-managed
    • J’ai créé buckaroo[1] comme un meilleur visualiseur de DataFrame pour Jupyter, avec aussi des statistiques descriptives intégrées. C’est un outil qui vise à offrir une meilleure expérience DataFrame à ceux qui utilisent déjà pandas/polars. Tout est extensible[2], donc on peut personnaliser les statistiques et les transformations selon son workflow. [1] https://github.com/paddymul/buckaroo [2] https://youtu.be/GPl6_9n31NE
    • Le serveur PySheets peut s’exécuter n’importe où. Par exemple sur mon laptop, sur Google AppEngine ou sur DigitalOcean. Il a été conçu en pensant au on-premise, afin de pouvoir aussi être déployé dans des entreprises qui ne veulent pas partager leurs données avec des services externes. Cela dit, seules les données stockées dans la feuille elle-même sont enregistrées dans PySheets. Dans la plupart des cas d’usage, on importe les données depuis un autre endroit, on les filtre et les transforme, puis on affiche le résultat. Cela dit, l’auto-hébergement pourrait quand même être un cas d’usage intéressant.
    • J’ai créé une page dédiée aux projets liés dans la documentation de mon projet dans ce domaine. Je me suis dit que si quelqu’un arrive jusque dans la doc et que buckaroo ne résout pas son problème, il devrait pouvoir trouver autre chose qui puisse l’aider. https://buckaroo-data.readthedocs.io/en/latest/articles/rela...
  • Je me demande s’il y a une chance de voir arriver une vidéo de démonstration ou un tutoriel. Avec la seule landing page, il est difficile de comprendre quel est le workflow et quels cas d’usage PySheets résout. Je n’ai pas envie de créer un compte juste pour le découvrir.

    • Je prévois de faire quelques vidéos la semaine prochaine. J’ai fait une démo d’extension lors de la réunion hebdomadaire PyScript FUN, mais elle n’a pas été enregistrée.
  • J’ai essayé RowZero et PySheets pendant environ 30 minutes. RowZero semble prendre en charge des datasets gigantesques. J’utilisais quadratichq comme tableur Python, mais maintenant RowZero semble avoir plus de fonctionnalités et être moins cher. Je pensais que PySheets serait open source, mais il semble fermé, coûte deux fois plus cher et est limité à 50 lignes. Au final, je n’ai même pas réussi à comprendre comment importer https://www.w3resource.com/python-exercises/pandas/excel/Sal... dans PySheets. Je ne connaissais pas visidata, mais c’est vraiment impressionnant. Article instructif.

  • Dans les années 2000 et au début des années 2010, la startup londonienne Resolver Systems[1] a essayé de combiner Python et les tableurs. Au final, ça n’a pas marché, mais je me demande si c’était parce qu’à l’époque Python était bien moins connu qu’aujourd’hui. [1] http://www.resolversystems.com

    • Oui. Il y avait un vrai produit, et si je me souviens bien, je l’ai téléchargé et utilisé. Je crois qu’il y avait en partie les mêmes personnes que celles qui ont ensuite fondé PythonAnywhere, que j’ai aussi utilisé. J’ai lu récemment quelque part qu’ils avaient été rachetés par Anaconda.
  • Ça a l’air assez sympa. C’est séduisant pour ceux que ça agace qu’Excel, Sheets et Numbers ne permettent pas de coder dans un langage correct comme Python, puis de faire de la visualisation et des requêtes par-dessus.
    Mais on voit AI-driven à la troisième ligne de la page web. J’en déduis que c’est une fonctionnalité importante pour l’auteur de la page.
    Avec Ctrl-F, on trouve encore une occurrence de “ai-driven” sur la page, dans la phrase « effectuer facilement des visualisations pilotées par l’IA avec Matplotlib ». Il n’y a pas plus d’explications sur la landing page, et je n’ai pas trouvé de documentation. En cherchant « pysheets docs », je suis tombé sur une bibliothèque Python du même nom.
    La semaine dernière, j’ai utilisé ChatGPT pour la première fois afin de faire relire mon CV. Je ne le fais pas d’habitude, mais l’entreprise à laquelle j’ai postulé insistait beaucoup sur le fait qu’elle génère et relit du code avec ChatGPT. Je l’ai essayé moi-même avec scepticisme, et le résultat était impressionnant.
    Cela dit, ChatGPT a signalé des erreurs de grammaire qui n’existaient même pas dans le CV. La phrase critiquée dans le feedback n’apparaissait nulle part dans le CV, ni rien de similaire. Bien sûr, il y avait peut-être au fin fond des 1000 couches du réseau une ressemblance avec quelque chose qui contenait une erreur, mais ce serait bien de pouvoir déboguer ce genre de chose efficacement.
    Donc, quand je vois AI-driven sans explication dans un tableur, je m’inquiète beaucoup de savoir si les données vont halluciner. J’aimerais que l’auteur explique précisément ce qu’il veut dire. Je veux savoir ce qui se passe exactement : est-ce que les graphiques sont corrects à 99 % mais hallucinent parfois, ou autre chose ? Si je pouvais le savoir, je m’inscrirais peut-être à la bêta tout de suite.
    Pour finir sur une blague, quelle est la probabilité que l’un des auteurs s’appelle Kurt Vile : https://www.youtube.com/watch?v=4uAXMl-Bfiw

    • En s’inscrivant à PySheets, on obtient 7 tutoriels. Deux d’entre eux expliquent comment utiliser l’IA pour récupérer des données, les convertir en Dataframe, puis les visualiser avec Matplotlib.
      Le code généré est impressionnant et peut aider un data scientist débutant à explorer les API de Pandas et de Pyplot. L’IA est utilisée pour générer du code Python, pas pour analyser ou générer les données de la feuille. Je clarifierai ce point sur la landing page.
      C’est un autre Kurt Vile :-)
  • Ça ressemble à un projet vraiment excellent et bien peaufiné. Utiliser Python dans un tableur est une bonne idée, et Excel semble déjà aller dans cette direction. Cela dit, c’est agréable de voir une implémentation aussi claire et facile à utiliser.
    Ce n’est pas une critique de PySheets en particulier, mais j’aimerais que les tableurs soient plus stricts. Par exemple, qu’ils imposent un format tabulaire aux feuilles. Cela éviterait que des gens dans une organisation créent un chaos terrible que d’autres devront plus tard disséquer et rétroconcevoir avec des outils qui ne sont pas des tableurs.

    • J’imaginais que beaucoup de cas d’usage consisteraient non pas à stocker des données dans la feuille, mais à utiliser PySheets comme un meilleur Jupyter Notebook.
      On récupère des données, on les convertit en Dataframe, on les nettoie, on les analyse, on entraîne, puis on exporte. Par exemple, il existe une feuille qui charge les métriques d’utilisation de PySheets, les convertit en dataframe, les trace sous forme de graphique, puis les rend comme graphique en direct sur la landing page de pysheets.app.
  • Logiciel/app intéressant. Dans mon entreprise actuelle, nous avons beaucoup de fichiers Excel contenant beaucoup de logique métier dans les formules Excel.
    Je me demande si, lorsqu’on importe un fichier Excel dans PySheets, il reconnaît aussi les formules du fichier Excel d’origine. J’aimerais aussi savoir s’il existe une vidéo montrant ce que PySheets peut faire.

    • Si vous faites un couper-coller d’une feuille depuis Google Sheets vers PySheets, cela fonctionne plutôt bien. À l’heure actuelle, PySheets ne gère pas les fonctions Excel.
      C’est sur la roadmap potentielle, mais je n’en suis pas encore là. Depuis que j’ai quitté mon précédent emploi en février, je n’ai en réalité travaillé sur PySheets qu’environ 3 mois.