再見Excel!我開源了一款與Python深度集成的神器級IDE

2021-02-13 InfoQ
這是一款與 Python 深度集成、基於 Web 開發、無需在各個工具之間切換、適用大部分職業工作場景的開源電子表格應用程式。對它的評價只有 Wow awesome,amazing!

一位名叫 Rick Lamers 的外國小哥開源了一款與 Python 深度集成、基於 Web 的電子表格應用程式。

這個開源項目有多牛呢?如果你經常與 Excel、R Studio 和 Python 打交道,反覆在各個應用間切換,它可以完美解決你的所有問題。這是一款程式設計師能用、運營能用、產品能用、財務能用的神器級 IDE。

Grid Studio 主要要解決的問題是如何在開發數據科學項目時不需要在各種工具(比如 R Sudio、Excel)之間切來切去,因為那種體驗實在太糟糕了。

在導出 CSV 文件時,因為行數太多或者嘗試讀取 JSON 文件會導致應用程式窗口沒有響應。現有的工具無法提供高效的開發環境和工作流。

於是,Rick 決定開發一個工具,把他的工作流集成在一起,可以方便地應對各種項目。

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,等等。但如果你想要使用其他函數,那該怎麼辦?

自己動手寫!

def UPPERCASE(a):        return str(a).uppercase()

然後就可以在表格中調用這個函數,就像調用常規的函數一樣。

Python 生態系統提供了很多非常棒的數據科學開發工具:

藉助這些工具可以很容易地使用強大的模型,比如線性回歸和 SVM。

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(https://www.xlwings.org/)的插件將 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(確保已經安裝了 Docker):

克隆代碼庫:git clone

https://github.com/ricklamers/gridstudio

運行 bash 腳本(在 Windows 上使用 Git Bash):

cd gridstudio && ./run.sh

在瀏覽器中打開

http://127.0.0.1:8080

你感興趣嗎?

原文連結:

https://hackernoon.com/introducing-grid-studio-a-spreadsheet-app-with-python-to-make-data-science-easier-tdup38f7


點個在看少個 bug 👇

相關焦點

  • 再見!Python IDE
    下載地址:https://www.spyder-ide.org/Spyder 是為數據科學而開發的。它是開源工具,能夠與大量平臺兼容,因而成為 IDE 新手用戶的更好選擇。為實現完美開發,它合併了多個關鍵庫,如 NumPy、Matplotlib 和 SciPy。9.
  • Excel還是Python?一文教你集成Python和Excel!
    當然,可以使用VBA來解決問題,但為什麼不考慮Python呢,藉助xlwings這個三方庫,我們可以把Python和Excel完全集成到一起。為什麼要集成Python和ExcelExcel VBA能完成很多數據分析工作,包括自動化。那麼為什麼要使用Python?有以下幾個重要的原因:設置好環境,安裝xlwings先在終端安裝xlwings三方庫。
  • 對比Python這幾種不同的編輯器/IDE優缺點,看看你最中意哪一款?
    Jupyter notebook成了數據科學家眼裡的一款人見人愛的工具,它能幫助他們便捷地執行各種端到端任務,如數據清洗、統計建模、構建/訓練機器學習模型。富媒體格式包括:HTML,LaTeX,PNG,SVG缺點:它不是一個真正意義上的集成開發環境,像代碼格式、依賴管理、產品打包、單元測試等功能,相比重型IDE,它的功能還是比較弱。3. Spyderhttps://www.spyder-ide.org/
  • 哪種Python IDE最適合你?15款IDE優缺點列表都在這裡了
    它是開源工具,能夠與大量平臺兼容,因而成為 IDE 新手用戶的更好選擇。為實現完美開發,它合併了多個關鍵庫,如 NumPy、Matplotlib 和 SciPy。9.04 其他 Python 開發 IDE這部分將介紹一些不那麼有名和流行但同樣值得一看的 IDE。10.
  • Python IDE 優缺點列表
    下載地址:https://www.spyder-ide.org/Spyder 是為數據科學而開發的。它是開源工具,能夠與大量平臺兼容,因而成為 IDE 新手用戶的更好選擇。為實現完美開發,它合併了多個關鍵庫,如 NumPy、Matplotlib 和 SciPy。
  • 10款最受Python開發者歡迎的Python IDE
    Python 的學習過程少不了 IDE 或者代碼編輯器,或者集成的開發編輯器(IDE)。這些 Python 開發工具幫助開發者加快使用 Python 開發的速度,提高效率。高效的代碼編輯器或者 IDE 應該會提供插件,工具等能幫助開發者高效開發的特性。這篇文章收集了一些對開發者非常有幫助的,最好的 10 款 Python IDEs。
  • 盤點當下幾款主流的 Python IDE,哪款最適合你?
    下載地址:https://www.spyder-ide.org/Spyder 是為數據科學而開發的。它是開源工具,能夠與大量平臺兼容,因而成為 IDE 新手用戶的更好選擇。為實現完美開發,它合併了多個關鍵庫,如 NumPy、Matplotlib 和 SciPy。
  • 所有主流 Python IDE 優缺點對比!
    寫 Python 代碼最好的方式莫過於使用集成開發環境(IDE)了。它們不僅能使你的工作更加簡單、更具邏輯性,還能夠提升編程體驗和效率。每個人都知道這一點。而問題在於,如何從眾多選項中選擇最好的 Python 開發環境。初級開發者往往面臨這個問題。本文將概述最受程式設計師歡迎的 Python IDE,以及其他值得考慮的選項。在此之前,我們先來看看 IDE 是什麼。
  • python學習一定用pycharm嗎?再看看還有什麼其他IDE可以選擇
    Pycharm是最近幾年才火的,老程式設計師一般習慣開源免費的。而vim就是其中值得推薦的一款。學習python與pycharm無根本聯繫。凡事沒有絕對,真要學隨便用什麼都行。Python自帶的idle以及vim都是很好的選擇再次強調:學習Python與使用pycharm完全不掛鈎!快去試試看vim,完全免費!用習慣了真香!
  • 超全Python IDE武器庫大總結
    原文連結:https://djangostars.com/blog/python-ide/寫 Python 代碼最好的方式莫過於使用集成開發環境(IDE)了。下載地址:https://www.spyder-ide.org/Spyder 是為數據科學而開發的。它是開源工具,能夠與大量平臺兼容,因而成為 IDE 新手用戶的更好選擇。為實現完美開發,它合併了多個關鍵庫,如 NumPy、Matplotlib 和 SciPy。
  • 最全Python IDE優缺點大總結,總有一款適合你!
    它通過簡單的用戶界面集成多個高度關聯的組件,從而最大化程式設計師的生產效率。本質上,IDE 是一種改進代碼創建、測試和 debug 流程的工具,它使這些工作更加簡單。6.IDLE下載地址:https://docs.python.org/3/library/idle.html
  • Python新手入門第一步:什麼是 IDE?IDE 有什麼用?
    它是開源工具,能夠與大量平臺兼容,因而成為 IDE 新手用戶的更好選擇。為實現完美開發,它合併了多個關鍵庫,如 NumPy、Matplotlib 和 SciPy。其他 Python 開發 IDE這部分將介紹一些不那麼有名和流行但同樣值得一看的 IDE。
  • 一款基於python的版圖設計工具
    在前面的博文中,我們有介紹了John Hunter,以及他所開發的一款處理數據的開源軟體Matplotlib。
  • 15 種 Python IDE 工具使用對比
    下載地址:https://www.spyder-ide.org/Spyder 是為數據科學而開發的。它是開源工具,能夠與大量平臺兼容,因而成為 IDE 新手用戶的更好選擇。為實現完美開發,它合併了多個關鍵庫,如 NumPy、Matplotlib 和 SciPy。
  • 國內外最流行的Python編輯器【IDE】 TOP 8
    Python 的學習過程少不了集成開發環境(IDE)或者代碼編輯器。
  • 【分享】Python九個最佳IDE集成開發環境
    簡說Python推薦來源:https://blog.csdn.net/chszs/article/details/45922299chszsOne old watch, like brief python大家好,我是老表Python是一種功能強大
  • VScode下安裝platformIO-IDE
    偶然的機會,接觸到platformIO,網上介紹PlatformIO 是開源的物聯網開發生態系統。
  • 詳細比對 15 款 Python 編輯器/ IDE,請擇優選用!
    它通過簡單的用戶界面集成多個高度關聯的組件,從而最大化程式設計師的生產效率。本質上,IDE 是一種改進代碼創建、測試和 debug 流程的工具,它使這些工作更加簡單。IDE 使用的工具包括:有一個與 IDE 相似的術語——代碼編輯器(code editor)。我們先來探討二者的異同。什麼是代碼編輯器?
  • 哪種Python IDE最適合你?這裡有一份優缺點列表
    下載地址:https://www.spyder-ide.org/Spyder 是為數據科學而開發的。它是開源工具,能夠與大量平臺兼容,因而成為 IDE 新手用戶的更好選擇。為實現完美開發,它合併了多個關鍵庫,如 NumPy、Matplotlib 和 SciPy。
  • Python IDE 詳細攻略,拿來吧你~
    寫 Python 代碼最好的方式莫過於使用集成開發環境(IDE)了。它們不僅能使你的工作更加簡單、更具邏輯性,還能夠提升編程體驗和效率。每個人都知道這一點。而問題在於,如何從眾多選項中選擇最好的 Python 開發環境。初級開發者往往面臨這個問題。本文將概述最受程式設計師歡迎的 Python IDE,以及其他值得考慮的選項。