向 Excel 說再見,神級編輯器統一表格與 Python
- 2019 年 10 月 7 日
- 筆記
是的,在一個介面上同時展示可視化表格與程式碼,而且同時通過表格與程式碼修改數據,這不就是 Python 與 Excel 的結合嗎?
項目地址:https://github.com/ricklamers/gridstudio
我們先看看 Grid studio 的效果到底是什麼樣的。總體而言,我們既可以通過 Python 載入和處理數據,也能通過「Excel」操作數據。

在 Python 上處理數據比較好理解,表格上處理數據其實非常像 Excel,如下所示為寫一個求和公式。

也許我們在表格上改了些數據,那麼我們也能導入到 NumPy 數組,並做進一步的運算。

為什麼要創建這個工具?
作者表示,他創建 Grid studio 主要是用來解決數據科學項目中工作流分散的問題,在這種項目中,他要在 R studio、Excel 等多個工具之間換來換去。
在為 gazillionth-time 導出 CSV 文件時,如果行數過高,應用程式窗口就會卡頓。即使是做一些簡單的事情,比如讀取 JSON 文件,也能把人逼瘋。現有的工具無法提供高效工作所需的環境和相關工作流,這也是作者決定構建該工具的原因。他想要創建一個易用的應用程式,可以把數據科學工作流整合進去。
這個工具有何亮點?
Grid studio 是一個基於網頁的應用,看起來和 Google Sheets、Microsoft Excel 差不多。然而,它的殺手鐧是整合了 Python 語言。
幾乎所有使用過電腦的人都會很自然地使用表格來查看和編輯數據。將這個簡單的 UI 與 Python 這種成熟的程式語言結合起來簡直不要太好用。
用 Python 編寫腳本非常簡單:只需編寫幾行程式碼直接運行即可。

核心集成:讀、寫
這一 Python 集成的核心是對電子表格的讀寫介面,它可以在電子表格的數據和 Python 進程中的數據之間建立一個高性能的連接。
可以用以下方式在表格中寫入數據:
sheet("A1:A3", [1, 2, 3])
用以下這種方式從表格中讀取數據:
my_matrix = sheet("A1:A3")
你可以通過這種簡單而高效的方式直接在表格中讀取或寫入數據,以自動化數據輸入、提取、可視化等過程。
編寫訂製化表格函數
雖然通過一個簡單的介面完成讀寫非常靈活,但有時編寫可以直接調出的訂製化函數也很重要。
除了 AVERAGE、SUM、IF 這些默認函數外,你可能還需要其他函數,那麼寫出來就好了!
def UPPERCASE(a): return str(a).uppercase()
寫完這行程式碼後,在表格中調出該函數,就像調用常規函數一樣。
利用 Python 生態
通過利用 Python 生態中各種強大的軟體包,我們能立即訪問到當前最優的數據科學工具,因此也能快速訪問到強大的模型,例如線性回歸和支援向量機等。

因為本身 Grid studio 主要就是處理表格數據,那麼將它們作為特徵可以快速調用 SVM 等模型,從而探索隱藏在這些數據背後的特徵。
數據可視化
在數據科學中,很常見的一個任務就是可視化數據,這樣才能獲得關於數據的「先驗知識」。通過集成互動式繪圖庫 Plotly.js 和 Python 標準可視化庫 Matplotlib,Grid studio 目前已經內置了高級繪圖功能。如下所示我們可以在向量表格格式上使用高級繪圖功能:

為了進一步解釋如何使用 Grid studio 的特徵以構建可視化圖標,項目作者還展示了兩個案例,即爬取網頁與可視化數據分布,但這裡主要展示第一個案例。
案例:估計正態分布
如下案例展示了 Grid studio 的強大功能,它會以更高的保真度通過 Plotly.js 可視化正態分布,我們可以看看互動式製圖到底是如何完成的。

使用安裝
前面介紹了這麼多特性,那麼我們到底該怎麼用呢?Grid studio 的安裝和使用都非常簡單,通過簡單的命令行就能搞定。
- git clone https://github.com/ricklamers/gridstudio
- cd gridstudio && ./run.sh
如上通過下載項目、運行安裝腳本兩步,我們就能在瀏覽器中打開本地埠,然後就能愉快地使用了。
reference
機器之心
參考鏈接:
https://hackernoon.com/introducing-grid-studio-a-spreadsheet-app-with-python-to-make-data-science-easier-tdup38f7 https://github.com/ricklamers/gridstudio https://gridstudio.io