這是一款與 Python 深度集成、基于 Web 開發、無需在各個工具之間切換、適用大部分職業工作場景的開源電子表格應用程序。對它的評價只有 Wow awesome,amazing!
一位名叫 Rick Lamers 的外國小哥開源了一款與?Python?深度集成、基于?Web?的電子表格應用程序。
這個開源項目有多牛呢?如果你經常與 Excel、R Studio 和 Python 打交道,反復在各個應用間切換,它可以完美解決你的所有問題。這是一款程序員能用、運營能用、產品能用、財務能用的神器級 IDE。
為什么要開發 Grid Studio?
Grid Studio 主要要解決的問題是如何在開發數據科學項目時不需要在各種工具(比如 R Sudio、Excel)之間切來切去,因為那種體驗實在太糟糕了。
在導出 CSV 文件時,因為行數太多或者嘗試讀取 JSON 文件會導致應用程序窗口沒有響應?,F有的工具無法提供高效的開發環境和工作流。
于是,Rick 決定開發一個工具,把他的工作流集成在一起,可以方便地應對各種項目。
Grid Studio 的工作原理
Grid Studio 是一款基于 Web 的應用程序,看起來和 Google Sheets 或 Excel 很像。不過,它的殺手锏特性是與 Python 的深度集成。
你可以直接用它查看和編輯表格結構的數據,也可以直接在上面編寫和執行 Python 代碼。
在 Grid Studio 中可以直接通過 Python 讀寫電子表格。
要向表格中寫入數據,可以這樣:
復制代碼
sheet("A1:A3", [1,2,3])
要從表格中讀取數據,可以這樣:
復制代碼
my_matrix= sheet("A1:A3")
這些簡單的函數可以實現數據的自動錄入、抽取、可視化,等等。
編寫自定義函數
雖然上述的讀寫函數已經可以滿足很多需求,但有時候也需要編寫自定義函數,然后在表格中調用這些函數。
Grid Studio 默認支持常用的表格函數,比如 AVERAGE、SUM、IF,等等。但如果你想要使用其他函數,那該怎么辦?
自己動手寫!
復制代碼
defUPPERCASE(a):
returnstr(a).uppercase()
然后就可以在表格中調用這個函數,就像調用常規的函數一樣。
利用 Python 生態系統
Python 生態系統提供了很多非常棒的數據科學開發工具:
借助這些工具可以很容易地使用強大的模型,比如線性回歸和 SVM。
Docker 運行時
Grid Studio 運行在 Docker 容器中,可以很方便地訪問 UNIX 環境(甚至是 Windows?。┲械臇|西:Python、scikit-learn、numpa、pandas、terminal、wget、zip,等等。
Grid Studio 提供了預先構建好的 Docker 鏡像,可以通過簡單的命令行來啟動。
數據可視化
數據可視化是數據科學的一項常見任務。Grid Studio 與 Plotly.js 和 Matplotlib 深度集成,為高級數據可視化提供了內置支持。
為了演示 Grid Studio 的功能,接下來將提供一些具體的例子。
示例:爬取網絡內容
之前爬取網絡內容可能需要在各種工具之間切換,現在只需要一個腳本就夠了。
在上面的示例中,一個簡短的腳本直接將 Hacker News 網站的文章加載到表格中。
腳本地址:
https://github.com/ricklamers/gridstudio/blob/master/examples/scrape.py
示例:估計正態分布
這個例子演示了使用 Plotly.js 進行高保真正態分布估計,交互式繪圖讓你對正在發生的事情一目了然。
腳本地址:
https://github.com/ricklamers/gridstudio/blob/master/examples/estimate_normal.py
開源動機
雖然最初 Rick 想將這個工具打造成一個商業項目,但最后還是決定將其開源,讓每個人都能使用它,并有可能由來自社區的一小批數據愛好者負責開發。
在開發這個工具的初期,他發現有很多項目都提供了類似的功能。
首先,有一個叫作?xlwings?的插件將 Python 直接集成到 Excel 中。盡管它并不是真的將電子表格和 Python 集成到單個產品中,但確實為用戶提供了一個完整的 Excel 開發環境。
其次,Python 已經從 IPython 轉向了 Jupyter Notebooks,為數據科學家提供了一個很好的開發環境。雖然它仍然缺乏電子表格功能,但對于初級數據科學家來說仍然很有吸引力。
總的來說,如果把 Grid Studio 做成商業項目,它就要與這些開源產品展開競爭,這樣在價格上就不會有任何優勢。Rick 堅信 Grid Studio 提供了一些獨特的功能,在某些場景下會成為不二之選。
Grid Studio 的項目地址:
https://github.com/ricklamers/gridstudio。
開發者評價
東西好不好,開發者最知道。
Bruh, this is amazing. You should sell this shit are you kidding me?!
兄弟,這也太牛了,你應該把這玩意兒賣錢啊,(開源)是在逗我?
As a heavy excel user who despises vba, this looks amazing
作為一個鄙視 VBA 的 Excel 重度用戶,這也太牛了吧
I showed this to my brother, who’s not a programmer, and he said “holy shit!”. Well, it’s impressive. Good job!
我把這個給我不是程序員的哥哥看,他說:我去,太牛了,干得漂亮!
除了整齊劃一的 wow awesome、amazing 的贊嘆,開發者們同樣提出了很多改進意見,并且表示可以加入社區一起優化這個工具。版本和開發計劃 Grid Studio 現在就可以從 GitHub 上下載了。
增加更多原生函數(比如 AVERAGE、SUM、IF 之外),甚至是來自 Libre Office Calc 或 Excel 的函數。
在表格中輸入公式時提供語法高亮和函數提示。
高級排序和過濾功能。
擴展控件,使用 Plotly.js 進行交互式可視化。
更容易地分享工作空間或代碼(比如導出工作空間)。
實時協作(這個可能會很困難)。
提供插件 API 或接口。
將公式解析器升級成真正的基于語法的解析器。
Python 語法自動完成。
性能優化。
與 Python 更健壯地集成(不會出現字符、語句斷開)。
如何使用 Grid Studio?
在本地安裝 Grid Studio(確保已經安裝了 Docker):
克隆代碼庫:git clone
https://github.com/ricklamers/gridstudio
運行 bash 腳本(在 Windows 上使用 Git Bash):
cd gridstudio && ./run.sh
在瀏覽器中打開
你感興趣嗎?
原文鏈接: