PySheets, une interface de tableur pour Python
(pysheets.app)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
C’est sympa, ce genre de chose.
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
Si vous prévoyez d’aller à PyCon US à Pittsburgh, je serai probablement la plupart du temps au stand Anaconda
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
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
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 :-)
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 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
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.
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.
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
Ç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
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.
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.
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.