PySheets, una interfaz de hoja de cálculo para Python
(pysheets.app)Introducción a PySheets
- PySheets ofrece una interfaz de hoja de cálculo para Python que permite a los usuarios realizar ciencia de datos exploratoria, usar Pandas, crear gráficos con matplotlib, importar hojas de Excel, analizar datos y redactar informes
- Todo el código Python se ejecuta en el navegador y PySheets también está escrito en Python
- Con PySheets, los usuarios pueden cargar todos los paquetes de Python y módulos de JS para aprovechar el amplio ecosistema de ciencia de datos sin necesidad de escribir mucho código
Funciones principales de PySheets
- Permite importar y exportar hojas de Excel rápidamente
- Permite explorar y analizar datos con Pandas
- Facilita la visualización impulsada por IA con Matplotlib
- Permite obtener resultados inmediatos con una codificación mínima
- Permite colaborar con miembros del equipo en hojas compartidas
- No requiere configuración, kernels ni costosos gastos en la nube
- Permite aprovechar todo el ecosistema de Python y JS
Estado de uso de PySheets
- PySheets se lanzó en beta pública el 27 de abril de 2024
- El 21 y el 23 de abril se observó que Bruno, uno de los primeros beta testers, lo usó con entusiasmo
- Los gráficos se generan en PySheets y se ofrecen usando la función "embed"
Comentarios de usuarios
- "¡Qué bien poder usar una hoja de cálculo del lado del cliente con Python integrado!" - JG
- "Me gusta la flexibilidad de Python y la claridad de la interfaz de hoja de cálculo y las visualizaciones." - *****@google.com
- "¡PySheets me permite programar con arreglos, que es lo que más me gusta!" - FK
- "¡Combinar celdas y Python es genial!" - FG
- "PySheets es fácil de usar y se puede personalizar." - IT
- "Una fusión única entre un cuaderno Jupyter y una hoja de cálculo." - FE
- "Puedes tener diagramas de flujo de procesos, hojas de cálculo y scripts al mismo tiempo." - B2
- "PySheets es interesante porque usa el LTK de código abierto." - AL
- "¡Puedes hacer interacción, Excel, de todo, sin salir del navegador!" - PZ
- "PySheets cierra la brecha entre analistas no técnicos y científicos de datos." - *****@miracalml.com
- "Gran trabajo con PyScript. Están aprovechando al máximo la plataforma." - *****@anaconda.com
- "PySheets es Excel para quienes programan primero en Python." - NA
Política de precios
- Gratis: edición ilimitada de 5 hojas, 100 generaciones de IA, importación/exportación de Excel
- Pro ($19.99/mes): colaboración, hojas ilimitadas, soporte de la comunidad, generaciones de IA ilimitadas
- Enterprise: Single Sign-On, instalación on-premises, almacenamiento local, soporte dedicado, panel de auditoría
Presentación del equipo
- El desarrollador principal Chris Laffra tiene más de 30 años de experiencia creando herramientas de desarrollo; trabajó en IBM, Google y Uber, y lideró equipos de ingeniería en Morgan Stanley, Bank of America y JP Morgan para construir productos financieros innovadores
- El líder de producto Kurt Vile es un ejecutivo global de tecnología con trayectoria en Wall Street y una visión estratégica de TI; tiene experiencia en plataformas tecnológicas, ingeniería de software, datos, ciencia de datos, IA general y finanzas, además de una comprensión innata de las hojas de cálculo y el análisis de datos
- Chris y Kurt combinan experiencia técnica y financiera con una gran pasión por una excelente experiencia de usuario
Opinión de GN+
- PySheets parece un producto interesante que cierra la brecha entre científicos de datos y no desarrolladores al ejecutar Python directamente en el navegador y ofrecer una interfaz familiar de hoja de cálculo para el análisis de datos
- Tiene similitudes con Jupyter Notebook o Google Colab, pero se diferencia por ofrecer una interfaz de hoja de cálculo. Aun así, parece que seguirá siendo necesaria la capacidad de programar en Python para análisis avanzados
- El precio parece algo elevado, por lo que no será fácil atraer a usuarios individuales, y podría ser mejor enfocarse más en funciones enterprise dirigidas a clientes corporativos
- Parece tener un gran potencial de uso en finanzas y contabilidad, y también se espera valor como herramienta de comunicación y colaboración entre ejecutivos o tomadores de decisiones y analistas de datos
- Entre los productos que agregan funciones como machine learning y visualización a las hojas de cálculo están Excel Ideas de Microsoft y Explore de Google Sheets; frente a ellos, PySheets tiene la ventaja de ofrecer un entorno de análisis basado en Python más flexible y potente
2 comentarios
Esto está bueno.
Opiniones de Hacker News
Soy el autor de PySheets. La app está escrita completamente en Python, usa PyScript-LTK sobre PyScript y utiliza dos VM de Python: MicroPython y PyOdide.
El servidor web tiene lógica mínima corriendo en gunicorn en DigitalOcean, y el almacenamiento es Firestore. Se podría empaquetar fácilmente como una app independiente on-premise, pero todavía no le dimos alta prioridad. Me gustaría escuchar opiniones sobre esta forma de escribir apps web en Python dentro del navegador.
Si planean ir a PyCon US Pittsburgh, probablemente esté la mayor parte del tiempo en el stand de Anaconda.
A veces hago pequeñas apps para colegas que no programan, pero que sí manejan bastante bien las hojas de cálculo. Hoy estoy bastante atado a Python, pero distribuir apps es un dolor de cabeza, así que estuve mirando varias soluciones, e hice algunas apps web con flet, que funcionaron en casi todas las plataformas donde las probé. Este enfoque también se ve bien.
Dicho eso, aunque entiendo por qué debería ser difícil por motivos de seguridad, me gustaría saber cómo hacer que una app web acceda a los archivos del usuario.
Es promoción descarada, pero si manejan datasets más grandes, también podrían mirar rowzero.io.
Al principio implementamos algo como PySheets, donde el lenguaje de fórmulas era Python completo, pero en tareas como importar CSV grandes, el intérprete de Python se volvía un cuello de botella, y por el GIL no podíamos paralelizar la evaluación. Además, las pequeñas diferencias de sintaxis entre Python y el lenguaje de fórmulas de Excel lo hacían más difícil también para usuarios de negocio.
Por eso implementamos el motor de hoja de cálculo y el lenguaje de fórmulas en Rust. Hay una ventana de código Python donde se pueden escribir funciones Python arbitrarias, y esas funciones se pueden llamar como fórmulas desde cualquier celda de la hoja de cálculo. Al permitir pasar dataframes de Pandas de forma natural entre el mundo de Python y el de la hoja de cálculo, se obtiene el 90% de las ventajas de Python puro sin sacrificar rendimiento.
PySheets actualmente corre dentro del navegador sobre WebAssembly, y las restricciones ahí son mayores que el hecho de que Python sea lento. Solo hay 4 GB de memoria direccionable, incluyendo el intérprete y las bibliotecas, y el ancho de banda de red también limita el cálculo del lado del cliente.
Aun así, PySheets puede renderizar en 0.5 segundos una hoja basada en un Excel de 50,000 filas, y el recálculo completo de punta a punta tarda alrededor de 20 segundos. Sin un kernel externo que pueda ejecutar Polars sobre datasets grandes, hay límites a lo que se puede hacer en el navegador, pero creo que para la mayoría alcanza con lo que ofrece PySheets.
Como autor de PySheets, me honra que un “competidor” nos vea como una amenaza. Rowzero también es bastante impresionante y está muy bien hecho :-)
Como científico de datos lo usaría, pero como responsable de finanzas tendría motivos para no usarlo. 1) Corre en la nube, y como hay datos sensibles, debería correr localmente u on-premise, o integrarse con GCP/AWS/Azure. Si el backend es Rust está bien; si es Python, habría que distribuir junto con Docker un paquete de bibliotecas.
2) También deberían crear alternativas a PowerPoint/Word o, como mínimo, facilitar mucho copiar y pegar hacia PowerPoint/Word. 3) Deberían empujar fuerte el big data y las conexiones a bases de datos. Ahí está el cuello de botella ahora, y sería bueno ofrecer APIs de Python para servicios populares en finanzas como Bloomberg, Factset y CapitalIQ, listas para usar si se tiene la suscripción.
4) También hay que manejar texto. Se necesitan embeddings para similitud, fuzzy matching en Python e interfaces de análisis de texto como resaltar palabras clave en verde o buscar dentro del cuerpo. En finanzas también se trabaja mucho con PDF, así que sería bueno que todo estuviera en una sola plataforma, en vez de tener dos ventanas abiertas como ahora.
No encontré buenos ejemplos de cómo implementar algo así en Rust. Me pregunto si conviene usar una biblioteca de grafos como petgraph o hacerlo directamente.
Como app de hoja de cálculo basada en Python que no corre en el navegador, existe https://pyspread.gitlab.io/
Es una buena idea. Les da una GUI fácil de usar a quienes no son desarrolladores y, al mismo tiempo, ofrece Pandas a los usuarios orientados a datos.
Me pregunto si existe algún proyecto similar que se pueda autoalojar. Me incomoda subir datos relacionados con la salud a un servicio externo.
[0] https://www.trymito.io/
https://www.getgrist.com/product/self-managed
Todo es extensible[2], así que se pueden personalizar las estadísticas y transformaciones para adaptarlas al flujo de trabajo.
[1] https://github.com/paddymul/buckaroo
[2] https://youtu.be/GPl6_9n31NE
Lo diseñamos pensando en implementaciones on-premise, para que también puedan desplegarlo empresas que no quieran compartir datos con servicios externos. Dicho eso, lo único que se guarda en PySheets son los datos almacenados en la propia hoja. En la mayoría de los casos de uso se cargarán datos desde otro lugar, se filtrarán y transformarán, y luego se renderizarán los resultados. Aun así, el autoalojamiento podría ser un caso de uso interesante.
https://buckaroo-data.readthedocs.io/en/latest/articles/rela...
Me pregunto si hay posibilidad de que salga un video de recorrido o un tutorial. Con solo ver la landing page, cuesta entender cuál es el flujo de trabajo y qué casos de uso resuelve PySheets.
No quiero registrarme para averiguarlo.
Probé RowZero y PySheets durante unos 30 minutos. RowZero parece admitir datasets enormes.
Venía usando quadratichq como hoja de cálculo con Python, pero ahora RowZero parece tener más funciones y un precio más bajo. Pensé que PySheets sería open source, pero parece cerrado; además cuesta el doble y está limitado a 50 filas. Al final ni siquiera pude encontrar cómo importar https://www.w3resource.com/python-exercises/pandas/excel/Sal... en PySheets.
No conocía visidata y es realmente impresionante. Fue un artículo útil.
En los 2000 y principios de los 2010, la startup londinense Resolver Systems[1] intentó combinar Python con hojas de cálculo.
Al final no tuvo éxito, pero me pregunto si fue porque en ese entonces el reconocimiento de Python era mucho menor que ahora.
[1] http://www.resolversystems.com
Creo que más tarde fueron algunas de las mismas personas que fundaron PythonAnywhere, y también probé PythonAnywhere. Hace poco leí en algún lado que Anaconda lo había adquirido.
Se ve bastante genial. Resulta atractivo para quienes se frustran porque Excel, Sheets y Numbers no permiten programar en un lenguaje decente como Python y luego visualizar y consultar sobre eso.
Pero en la tercera línea de la página web aparece AI-driven. Eso me hace suponer que es una función importante para quien escribió la página.
Si busco “ai-driven” con Ctrl-F, aparece una vez más en la página, donde dice “realiza visualizaciones fáciles impulsadas por IA con Matplotlib”. No hay más explicación en la landing page y no pude encontrar la documentación. Al buscar “pysheets docs”, apareció una biblioteca de Python con el mismo nombre.
La semana pasada usé ChatGPT por primera vez para que revisara mi currículum. Normalmente no lo haría, pero la empresa a la que postulé hacía mucho énfasis en que generan y revisan código con ChatGPT. Lo probé personalmente con escepticismo, y el resultado fue impresionante.
Sin embargo, ChatGPT señaló errores gramaticales que ni siquiera existían en mi currículum. La oración que criticaba en el feedback no aparecía en ninguna parte del currículum, ni había nada parecido. Claro que, en algún lugar a 1000 capas de profundidad de la red, seguramente había alguna similitud con algo que sí tenía un error, pero sería bueno poder depurar este tipo de cosas de manera efectiva.
Por eso, cuando veo AI-driven sin explicación en un programa de hojas de cálculo, me preocupa mucho que los datos puedan alucinarse. Me gustaría que el autor explicara exactamente a qué se refiere. Quiero saber si los gráficos son correctos el 99% de las veces pero a veces alucinan, o qué está pasando. Si pudiera saberlo, quizá me registraría en la beta ahora mismo.
Como broma final, ¿cuáles son las probabilidades de que uno de los autores se llame Kurt Vile?: https://www.youtube.com/watch?v=4uAXMl-Bfiw
El código generado es impresionante y puede ayudar a un científico de datos principiante a explorar las API de Pandas y Pyplot. La IA se usa para generar código Python, no para analizar ni generar los datos de la hoja. Vamos a dejar esto claro en la landing page.
Este es otro Kurt Vile :-)
Parece un proyecto excelente y muy pulido. Aprovechar Python en una hoja de cálculo es una buena idea, y parece que Excel ya está haciendo algo por el estilo. Aun así, es bueno ver una implementación tan clara y fácil de usar.
No es una crítica a PySheets en sí, pero me gustaría que las hojas de cálculo fueran más estrictas. Por ejemplo, obligar a que las hojas tengan formato de tabla. Así se evitaría que la gente dentro de una organización cree un caos terrible que luego otros tengan que desarmar y aplicar ingeniería inversa con herramientas que no son hojas de cálculo.
Es decir, traer datos, convertirlos en un Dataframe, limpiarlos, analizarlos, entrenar y exportar. Por ejemplo, tenemos una hoja que carga métricas de uso de PySheets, las convierte en un dataframe y las grafica, y luego las renderiza como un gráfico en vivo en la landing page de pysheets.app.
Es un software/app interesante. En mi empresa actual hay muchos archivos de Excel con mucha lógica de negocio metida en fórmulas de Excel.
Me pregunto si, al importar un archivo de Excel a PySheets, también reconoce las fórmulas del archivo original. También quisiera saber si hay algún video que muestre qué puede hacer PySheet.
Está en la hoja de ruta posible, pero todavía no llegamos ahí. Después de dejar mi trabajo anterior en febrero, en realidad llevo apenas unos 3 meses trabajando en PySheets.