7 điểm bởi GN⁺ 2024-04-29 | 2 bình luận | Chia sẻ qua WhatsApp

Giới thiệu về PySheets

  • PySheets cung cấp giao diện bảng tính cho Python, cho phép người dùng thực hiện khoa học dữ liệu khám phá, sử dụng Pandas, tạo biểu đồ bằng matplotlib, nhập các sheet Excel, phân tích dữ liệu và viết báo cáo
  • Toàn bộ mã Python chạy trong trình duyệt và bản thân PySheets cũng được viết bằng Python
  • Với PySheets, người dùng có thể tải mọi gói Python và module JS để tận dụng hệ sinh thái khoa học dữ liệu rộng lớn mà không cần phải viết nhiều mã

Các tính năng chính của PySheets

  • Có thể nhanh chóng nhập và xuất sheet Excel
  • Có thể khám phá và phân tích dữ liệu bằng Pandas
  • Có thể dễ dàng thực hiện trực quan hóa có hỗ trợ AI bằng Matplotlib
  • Có thể nhận được kết quả tức thì với lượng mã tối thiểu
  • Có thể cộng tác với thành viên trong nhóm trên các sheet dùng chung
  • Không cần thiết lập, kernel hay chi phí đám mây đắt đỏ
  • Có thể tận dụng toàn bộ hệ sinh thái Python và JS

Tình hình sử dụng PySheets

  • PySheets được phát hành ở dạng beta công khai vào ngày 27 tháng 4 năm 2024
  • Vào ngày 21 và 23 tháng 4, người thử nghiệm beta ban đầu Bruno được cho là đã sử dụng rất thích thú
  • Các biểu đồ được tạo trong PySheets và được cung cấp bằng tính năng "embed"

Phản hồi của người dùng

  • "Thật tuyệt khi có thể dùng bảng tính phía client với Python tích hợp sẵn!" - JG
  • "Tôi thích sự linh hoạt của Python cùng giao diện bảng tính rõ ràng và khả năng trực quan hóa." - *****@google.com
  • "PySheets cho phép tôi lập trình theo kiểu mảng mà tôi yêu thích!" - FK
  • "Kết hợp ô tính và Python thật tuyệt vời!" - FG
  • "PySheets dễ dùng và có thể tùy biến." - IT
  • "Sự kết hợp độc đáo giữa Jupyter notebook và bảng tính." - FE
  • "Bạn có thể có lưu đồ quy trình, bảng tính và script cùng một lúc." - B2
  • "PySheets rất thú vị vì dùng LTK mã nguồn mở." - AL
  • "Bạn có thể tương tác, dùng Excel, làm mọi thứ mà không cần rời khỏi trình duyệt!" - PZ
  • "PySheets thu hẹp khoảng cách giữa nhà phân tích không chuyên kỹ thuật và nhà khoa học dữ liệu." - *****@miracalml.com
  • "Công việc tuyệt vời với PyScript. Bạn đang tận dụng nền tảng này tối đa." - *****@anaconda.com
  • "PySheets là Excel dành cho những người ưu tiên lập trình bằng Python." - NA

Chính sách giá

  • Miễn phí: chỉnh sửa không giới hạn trên 5 sheet, 100 lượt tạo bằng AI, nhập/xuất Excel
  • Pro ($19.99/tháng): cộng tác, số sheet không giới hạn, hỗ trợ cộng đồng, tạo bằng AI không giới hạn
  • Enterprise: Single Sign-On, cài đặt on-premise, lưu trữ cục bộ, hỗ trợ chuyên trách, bảng điều khiển kiểm toán

Giới thiệu đội ngũ

  • Lập trình viên chính Chris Laffra có hơn 30 năm kinh nghiệm xây dựng công cụ phát triển, từng làm việc tại IBM, Google, Uber và đã dẫn dắt các nhóm kỹ sư xây dựng các sản phẩm tài chính đổi mới tại Morgan Stanley, Bank of America, JP Morgan
  • Lãnh đạo sản phẩm Kurt Vile là một giám đốc công nghệ toàn cầu xuất thân từ Phố Wall với tầm nhìn CNTT chiến lược, có chuyên môn về nền tảng công nghệ, kỹ thuật phần mềm, dữ liệu, khoa học dữ liệu, AI tổng quát và tài chính, đồng thời có hiểu biết bẩm sinh về bảng tính và phân tích dữ liệu
  • Chris và Kurt đang kết hợp chuyên môn kỹ thuật, tài chính và niềm đam mê với trải nghiệm người dùng xuất sắc

Ý kiến của GN+

  • PySheets có vẻ là một sản phẩm thú vị giúp thu hẹp khoảng cách giữa nhà khoa học dữ liệu và người không phải lập trình viên bằng cách chạy Python trực tiếp trong trình duyệt và cung cấp giao diện bảng tính quen thuộc cho phân tích dữ liệu
  • Dù có những điểm tương tự với Jupyter Notebook hay Google Colab hiện có, sản phẩm này khác biệt ở chỗ cung cấp UI bảng tính. Tuy vậy, có vẻ vẫn cần khả năng lập trình Python cho các phân tích nâng cao
  • Mức giá khá cao nên có lẽ sẽ không dễ thu hút người dùng cá nhân, và có vẻ tốt hơn nếu tập trung nhiều hơn vào các tính năng enterprise dành cho khách hàng doanh nghiệp
  • Có vẻ tiềm năng ứng dụng trong lĩnh vực tài chính và kế toán là khá lớn, đồng thời cũng được kỳ vọng có giá trị như một công cụ giao tiếp và cộng tác giữa lãnh đạo/người ra quyết định với các nhà phân tích dữ liệu
  • Trong số các sản phẩm bổ sung các tính năng như machine learning, trực quan hóa vào bảng tính có Excel Ideas của MS hay tính năng Explore của Google Sheets; so với chúng, PySheets có ưu thế là cung cấp môi trường phân tích dựa trên Python linh hoạt và mạnh mẽ hơn

2 bình luận

 
brainer 2024-04-29

Cái này hay đấy

 
GN⁺ 2024-04-29
Ý kiến trên Hacker News
  • Tôi là tác giả PySheets. Ứng dụng được viết hoàn toàn bằng Python, sử dụng PyScript-LTK trên PyScript, và dùng hai VM Python là MicroPythonPyOdide.
    Web server chỉ có logic tối thiểu chạy trên gunicorn ở DigitalOcean, còn kho lưu trữ là Firestore. Có thể dễ dàng đóng gói thành một ứng dụng on-premise độc lập, nhưng hiện chưa đặt ưu tiên cao. Tôi muốn nghe ý kiến về cách viết ứng dụng web bằng Python trong trình duyệt.

    • LTK, thư viện Python để tạo UI trình duyệt, là một phần của dự án mã nguồn mở PyScript. Xem https://github.com/pyscript/ltk
      Nếu bạn định đến PyCon US Pittsburgh, tôi sẽ chủ yếu có mặt ở gian hàng Anaconda.
    • Tôi thích ý tưởng này. Tôi không phải nhà phát triển thương mại, mà gần với kiểu lập trình viên khoa học, dùng lập trình chủ yếu như một công cụ giải quyết vấn đề.
      Thỉnh thoảng tôi tạo các ứng dụng nhỏ cho đồng nghiệp không lập trình sử dụng, và họ khá thành thạo bảng tính. Hiện tôi khá gắn với Python, nhưng việc phân phối ứng dụng là một nỗi đau nên tôi đã xem xét nhiều giải pháp; tôi cũng đã tạo vài ứng dụng web bằng flet và chúng chạy được trên hầu hết mọi nền tảng tôi thử nghiệm. Cách tiếp cận này cũng có vẻ hay.
      Tuy nhiên, dù hiểu vì sao việc này phải khó vì lý do bảo mật, tôi vẫn muốn biết cách để một ứng dụng web truy cập được vào tệp của người dùng.
    • PyScript đã tiến bộ rất nhiều. Tôi nhớ trước đây phải mất 5–10 giây để tải vào trình duyệt, nhưng giờ trông nhanh hơn nhiều.
    • Tôi thắc mắc vì sao không hỗ trợ ISO26300.
  • Đây rõ ràng là quảng bá, nhưng nếu bạn xử lý các tập dữ liệu lớn hơn thì cũng nên xem rowzero.io.
    Ban đầu chúng tôi đã triển khai một thứ giống PySheets, trong đó ngôn ngữ công thức là Python hoàn chỉnh, nhưng trong các tác vụ như nhập CSV lớn, trình thông dịch Python trở thành nút thắt cổ chai và vì GIL nên không thể song song hóa việc đánh giá. Các khác biệt cú pháp nhỏ giữa Python và ngôn ngữ công thức của Excel cũng khiến người dùng doanh nghiệp thấy khó hơn.
    Vì vậy chúng tôi đã triển khai engine bảng tính và ngôn ngữ công thức bằng Rust. Có một cửa sổ mã Python nơi bạn có thể viết các hàm Python tùy ý, và các hàm đó có thể được gọi như công thức từ bất kỳ ô nào trong bảng tính. Bằng cách cho phép truyền qua lại dataframe Pandas một cách tự nhiên giữa vùng Python và vùng bảng tính, bạn có thể có được 90% lợi ích của Python thuần mà không phải hy sinh hiệu năng.

    • Rowzero giống một bảng tính tốt hơn, còn PySheets gần với một Jupyter Notebook tốt hơn. Ở một vài khía cạnh chúng hội tụ, nhưng người dùng mục tiêu khác nhau nên có phần chồng lấn và cũng còn nhiều chỗ cho sở thích của người dùng.
      Hiện PySheets chạy trong trình duyệt trên WebAssembly, và các ràng buộc ở đây lớn hơn việc Python chậm. Bộ nhớ có thể định địa chỉ chỉ có 4GB, bao gồm cả trình thông dịch và thư viện, và băng thông mạng cũng là một hạn chế của tính toán phía client.
      Dù vậy, PySheets có thể render một sheet dựa trên bảng Excel 50.000 hàng trong 0,5 giây, còn việc tính toán lại end-to-end toàn bộ mất khoảng 20 giây. Có giới hạn đối với những gì có thể làm trong trình duyệt nếu không có kernel bên ngoài có thể chạy Polars trên các tập dữ liệu lớn, nhưng tôi nghĩ hầu hết trường hợp sẽ đủ với các chức năng PySheets cung cấp.
      Với tư cách tác giả PySheets, thật vinh dự khi một “đối thủ” xem chúng tôi là mối đe dọa. Rowzero cũng khá ấn tượng và được làm rất tốt :-)
    • Rowzero trông rất tuyệt, nhưng tôi nghĩ cả Rowzero lẫn PySheets đều đang nhắm sai người dùng. Theo tôi nên nhắm tới chuyên viên tài chính hơn là nhà khoa học dữ liệu thì sẽ dễ có traction ban đầu hơn.
      Với tư cách nhà khoa học dữ liệu thì tôi sẽ dùng, nhưng với tư cách người làm tài chính thì có lý do để không dùng. 1) Nó chạy trên cloud, trong khi có dữ liệu nhạy cảm, nên cần chạy cục bộ hoặc on-premise, hoặc tích hợp với GCP/AWS/Azure. Nếu backend Rust thì ổn, còn nếu là Python thì cần phân phối kèm một gói thư viện bằng Docker.
      2) Cũng cần làm các lựa chọn thay thế cho PowerPoint/Word, hoặc ít nhất phải dễ copy-paste sang PowerPoint/Word. 3) Cần nhấn mạnh mạnh mẽ vào big data và kết nối DB. Nút thắt hiện nằm ở đó, và nếu cung cấp sẵn các Python API cho những dịch vụ phổ biến trong ngành tài chính như Bloomberg, Factset, CapitalIQ để chỉ cần có đăng ký là dùng được thì tốt.
      4) Cũng cần xử lý phần văn bản. Cần giao diện phân tích văn bản như embedding để tính độ tương đồng, fuzzy matching bằng Python, tô xanh từ khóa hoặc tìm kiếm trong nội dung. Ngành tài chính cũng thường xử lý PDF, nên sẽ tốt hơn nếu tất cả nằm trong một nền tảng thay vì phải mở hai cửa sổ như hiện nay.
    • Tôi muốn biết liệu bạn có thể giải thích thêm cách đã triển khai DAG bằng Rust trong engine thực thi không. Tôi đang làm một thứ tương tự, không phải cho bảng tính mà cho một ngôn ngữ: https://docs.yoctoproject.org/bitbake/bitbake-user-manual/bi...
      Tôi chưa tìm được ví dụ hay về cách triển khai thứ như vậy trong Rust. Tôi băn khoăn nên dùng thư viện đồ thị như petgraph hay tự làm.
    • Cả hai giải pháp đều thú vị vì những lý do khác nhau. Bạn nói “90% lợi ích”, vậy tôi muốn biết liệu bạn có thể đưa ví dụ phần 10% còn lại là gì, có thể khiến người ta không dùng được giải pháp đó không.
    • Tôi thắc mắc Row Zero hay PySheets có phải mã nguồn mở không.
  • Với ứng dụng bảng tính dựa trên Python không chạy trong trình duyệt thì có https://pyspread.gitlab.io/

  • Ý tưởng hay. Cách làm là cung cấp một GUI dễ dùng cho người không phải lập trình viên, đồng thời cung cấp Pandas cho người dùng thiên về dữ liệu
    Tôi tự hỏi liệu có dự án tương tự nhưng có thể tự host không. Việc đưa dữ liệu liên quan đến sức khỏe lên dịch vụ bên ngoài khiến tôi không thoải mái

    • Trong những thứ tôi từng dùng, có một công cụ khá ổn tên là MitoSheet. Nó chạy cục bộ và có nhiều tính năng tốt, nhưng lần cuối tôi kiểm tra thì chưa hỗ trợ tệp TSV. Tôi hiểu là nó vẫn đang được phát triển tích cực và được phát triển với sự hỗ trợ của YCombinator
      [0] https://www.trymito.io/
    • grist phần nào tương tự. Nó là dạng lai giữa spreadsheet và cơ sở dữ liệu, có thể dùng Python trong công thức, và cũng có tùy chọn tự host
      https://www.getgrist.com/product/self-managed
    • Tôi đã tạo buckaroo[1] như một trình xem dataframe tốt hơn cho Jupyter, có cả thống kê tóm tắt tích hợp. Đây là công cụ nhằm mang lại trải nghiệm dataframe tốt hơn cho những người đã dùng pandas/polars
      Tất cả đều có thể mở rộng[2], nên bạn có thể tùy chỉnh thống kê và phép biến đổi cho phù hợp với workflow của mình
      [1] https://github.com/paddymul/buckaroo
      [2] https://youtu.be/GPl6_9n31NE
    • Máy chủ PySheets có thể chạy ở bất cứ đâu. Ví dụ có thể chạy trên laptop của tôi, Google AppEngine, hoặc DigitalOcean
      Chúng tôi thiết kế với mục tiêu on-premises để có thể triển khai cho các công ty không muốn chia sẻ dữ liệu với dịch vụ bên ngoài. Tuy vậy, thứ được lưu trong PySheets chỉ là dữ liệu nằm trong chính sheet. Phần lớn use case sẽ là tải dữ liệu từ nơi khác, lọc/chuyển đổi rồi render kết quả. Dù vậy, tự host vẫn có thể là một use case thú vị
    • Tôi đã tạo riêng một trang về các dự án liên quan trong tài liệu dự án của mình ở lĩnh vực này. Tôi nghĩ nếu ai đó đã vào tới tài liệu mà buckaroo không giải quyết được vấn đề của họ, thì họ nên có thể tìm được thứ khác hữu ích
      https://buckaroo-data.readthedocs.io/en/latest/articles/rela...
  • Tôi tự hỏi liệu có khả năng sẽ có video walkthrough hoặc tutorial không. Chỉ nhìn landing page thì khó biết workflow là gì và PySheets giải quyết những use case nào
    Tôi không muốn đăng ký tài khoản chỉ để tìm hiểu

    • Tuần sau tôi dự định làm vài video. Tôi đã demo mở rộng trong buổi họp PyScript FUN hằng tuần, nhưng nó không được ghi lại
  • Tôi đã dùng thử RowZero và PySheets khoảng 30 phút. RowZero có vẻ hỗ trợ dataset khổng lồ
    Tôi vẫn dùng quadratichq làm spreadsheet Python, nhưng giờ RowZero có vẻ nhiều tính năng hơn và giá cũng thấp hơn. Tôi tưởng PySheets là open source, nhưng có vẻ là đóng; giá gấp 2 lần và bị giới hạn 50 hàng. Cuối cùng tôi cũng không tìm ra cách import https://www.w3resource.com/python-exercises/pandas/excel/Sal... vào PySheets
    Tôi không biết visidata, nhưng nó thật sự tuyệt vời. Bài viết hữu ích

  • Vào những năm 2000 và đầu thập niên 2010, startup London Resolver Systems[1] đã cố gắng kết hợp Python với spreadsheet
    Cuối cùng họ không thành công, nhưng tôi tự hỏi liệu có phải vì khi đó Python ít được biết đến hơn bây giờ rất nhiều không
    [1] http://www.resolversystems.com

    • Đúng vậy. Họ có sản phẩm thật, và nếu tôi nhớ đúng thì tôi đã tải về dùng thử
      Có vẻ sau này một số người trong nhóm đó cũng là những người sáng lập PythonAnywhere, và tôi cũng đã dùng PythonAnywhere. Gần đây tôi đọc ở đâu đó rằng họ đã được Anaconda mua lại
  • Trông khá ấn tượng. Nó hấp dẫn với những ai khó chịu vì Excel, Sheets, Numbers không cho phép viết mã bằng một ngôn ngữ ổn như Python rồi trực quan hóa/truy vấn sau đó
    Nhưng ở dòng thứ ba trên trang web tôi thấy AI-driven. Điều đó khiến tôi đoán đây là một tính năng quan trọng với người viết trang
    Dùng Ctrl-F tìm “ai-driven” thì thấy xuất hiện thêm một lần nữa trên trang, với nội dung “thực hiện trực quan hóa dễ dàng dựa trên AI bằng Matplotlib”. Trang landing không có giải thích thêm và tôi cũng không tìm thấy tài liệu. Tìm “pysheets docs” thì lại ra một thư viện Python cùng tên
    Tuần trước lần đầu tôi dùng ChatGPT để nhờ xem xét sơ yếu lý lịch. Bình thường tôi không làm vậy, nhưng vì công ty tôi ứng tuyển nhấn mạnh rất nhiều rằng họ dùng ChatGPT để sinh và rà soát mã. Tôi thử dùng với tâm thế hoài nghi và kết quả khá ấn tượng
    Tuy nhiên ChatGPT đã chỉ ra một lỗi ngữ pháp không hề tồn tại trong sơ yếu lý lịch. Câu bị phê bình trong phản hồi không có ở đâu trong sơ yếu lý lịch, thậm chí cũng chẳng có câu nào tương tự. Tất nhiên đâu đó sâu trong 1000 tầng của mạng có thể có sự tương đồng với thứ từng có lỗi, nhưng nếu có thể gỡ lỗi hiệu quả những chuyện như vậy thì tốt
    Vì vậy, khi thấy AI-driven không được giải thích trong một chương trình bảng tính, tôi rất lo dữ liệu sẽ bị ảo giác. Mong tác giả giải thích chính xác họ muốn nói gì. Tôi muốn biết biểu đồ đúng 99% nhưng thỉnh thoảng bị ảo giác, hay chuyện gì đang diễn ra. Nếu biết được, có khi tôi sẽ đăng ký beta ngay bây giờ
    Đùa thêm một câu cuối, xác suất một trong các tác giả tên là Kurt Vile là bao nhiêu nhỉ: https://www.youtube.com/watch?v=4uAXMl-Bfiw

    • Khi đăng ký PySheets, bạn sẽ nhận được 7 bài hướng dẫn. Trong đó có 2 bài giải thích cách dùng AI để lấy dữ liệu, chuyển đổi thành Dataframe, và trực quan hóa bằng Matplotlib
      Mã được sinh ra khá ấn tượng, và có thể giúp nhà khoa học dữ liệu mới bắt đầu khám phá API của Pandas và Pyplot. AI được dùng để sinh mã Python, không dùng để phân tích hay tạo dữ liệu trong sheet. Chúng tôi sẽ làm rõ điểm này trên trang landing
      Đây là một Kurt Vile khác :-)
  • Trông như một dự án rất tuyệt và được trau chuốt kỹ. Tận dụng Python trong bảng tính là một ý tưởng hay, và có vẻ Excel cũng đã làm như vậy. Dù thế, vẫn thật tốt khi thấy một triển khai rõ ràng và dễ dùng như thế này
    Đây không phải phê bình riêng PySheets, nhưng tôi mong bảng tính nghiêm ngặt hơn. Ví dụ như buộc sheet phải ở dạng bảng. Như vậy mọi người trong tổ chức sẽ không tạo ra mớ hỗn độn kinh khủng mà sau này người khác phải mổ xẻ và reverse-engineer bằng các công cụ không phải bảng tính

    • Tôi hình dung nhiều trường hợp sử dụng không phải là lưu dữ liệu trong sheet, mà là dùng PySheets như một Jupyter Notebook tốt hơn
      Tức là lấy dữ liệu, chuyển thành Dataframe, làm sạch, phân tích, huấn luyện, rồi xuất ra. Ví dụ có một sheet tải các chỉ số sử dụng PySheets, chuyển thành dataframe và vẽ đồ thị, rồi render thành biểu đồ trực tiếp trên trang landing pysheets.app
  • Đây là một phần mềm/ứng dụng thú vị. Ở công ty hiện tại của tôi có nhiều file Excel chứa rất nhiều logic nghiệp vụ trong các công thức Excel
    Tôi tò mò liệu khi nhập file Excel vào PySheets thì nó có nhận diện cả công thức của file Excel gốc không. Tôi cũng muốn biết có video nào cho thấy PySheet có thể làm gì không

    • Nếu cắt-dán sheet từ Google Sheets sang PySheets thì hoạt động khá tốt. Hiện tại PySheets chưa xử lý hàm Excel
      Điều đó nằm trong roadmap khả thi, nhưng chúng tôi chưa đi đến đó. Sau khi tôi nghỉ công việc trước vào tháng 2, thời gian thực sự làm PySheets mới khoảng 3 tháng