7 puntos por GN⁺ 2024-04-29 | 2 comentarios | Compartir por WhatsApp

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

 
brainer 2024-04-29

Esto está bueno.

 
GN⁺ 2024-04-29
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.

    • LTK, una biblioteca de Python para crear interfaces de navegador, forma parte del proyecto open source PyScript. Ver https://github.com/pyscript/ltk
      Si planean ir a PyCon US Pittsburgh, probablemente esté la mayor parte del tiempo en el stand de Anaconda.
    • Me gusta la idea. No soy desarrollador comercial; soy más bien lo que se suele llamar un programador científico, que usa la programación principalmente como herramienta para resolver problemas.
      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.
    • PyScript realmente avanzó muchísimo. Recuerdo que antes tardaba 5 a 10 segundos en cargarse en el navegador, pero ahora parece mucho más rápido.
    • Me pregunto por qué no hay soporte para ISO26300.
  • 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.

    • Rowzero es una mejor hoja de cálculo, mientras que PySheets se parece más a un mejor Jupyter Notebook. En algunos aspectos convergen, pero sus usuarios objetivo son distintos, así que hay partes que se superponen y también mucho margen para la preferencia del usuario.
      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 :-)
    • Rowzero se ve excelente, pero creo que tanto Rowzero como PySheets apuntan al usuario equivocado. Creo que conviene apuntar a profesionales de finanzas más que a científicos de datos para lograr tracción inicial.
      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.
    • Me gustaría saber si puedes explicar más cómo implementaron el DAG en Rust dentro del motor de ejecución. Estoy construyendo algo similar, no para hojas de cálculo sino para un lenguaje: https://docs.yoctoproject.org/bitbake/bitbake-user-manual/bi...
      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.
    • Ambas soluciones son interesantes por motivos distintos. Dijiste “90% de las ventajas”; me gustaría saber si podrías dar ejemplos de cuál es el 10% restante que podría impedir usar esa solución.
    • Me pregunto si Row Zero o PySheets son open source.
  • 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.

    • De lo que he probado, hay uno bastante bueno llamado MitoSheet. Corre localmente y tiene buenas funciones, pero la última vez que revisé no admitía archivos TSV. Todavía está en desarrollo activo y, según entiendo, se desarrolló con apoyo de YCombinator.
      [0] https://www.trymito.io/
    • grist es algo parecido. Es un híbrido entre hoja de cálculo y base de datos, permite usar Python en las fórmulas y también tiene opción de autoalojamiento.
      https://www.getgrist.com/product/self-managed
    • Creé buckaroo[1] como un mejor visor de dataframes para Jupyter, con estadísticas resumidas integradas. Es una herramienta pensada para darles una mejor experiencia con dataframes a quienes ya usan pandas/polars.
      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
    • El servidor de PySheets puede ejecutarse en cualquier lugar. Por ejemplo, puede correr en mi laptop, en Google AppEngine o en DigitalOcean.
      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.
    • En la documentación de mi proyecto en esta área hice una página aparte de proyectos relacionados. Pensé que, si alguien llega hasta la documentación y buckaroo no le resuelve el problema, debería poder encontrar otra cosa que le sirva.
      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.

    • La próxima semana planeo hacer algunos videos. Hice una demo extendida en la reunión semanal PyScript FUN, pero no se grabó.
  • 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

    • Así es. Había un producto real y, si mal no recuerdo, lo descargué y lo probé.
      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

    • Al registrarte en PySheets, ofrecen 7 tutoriales. Dos de ellos explican cómo usar IA para traer datos, convertirlos en un Dataframe y visualizarlos con Matplotlib.
      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.

    • Imaginaba que muchos casos de uso no consistirían en almacenar datos en una hoja, sino en usar PySheets como un Jupyter Notebook mejor.
      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.

    • Si copias y pegas hojas desde Google Sheets a PySheets, funciona bastante bien. Actualmente PySheets no maneja funciones de Excel.
      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.