Giao diện bảng tính cho Python, PySheets
(pysheets.app)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
Cái này hay đấy
Ý 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à MicroPython và PyOdide.
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.
Nếu bạn định đến PyCon US Pittsburgh, tôi sẽ chủ yếu có mặt ở gian hàng Anaconda.
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.
Đâ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.
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 :-)
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 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.
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
[0] https://www.trymito.io/
https://www.getgrist.com/product/self-managed
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
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ị
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
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
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
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ứ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
Đ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