写点什么

再见Excel!我开源了一款与Python深度集成的神器级IDE

2019 年 7 月 31 日

再见Excel!我开源了一款与Python深度集成的神器级IDE

这是一款与 Python 深度集成、基于 Web 开发、无需在各个工具之间切换、适用大部分职业工作场景的开源电子表格应用程序。对它的评价只有 Wow awesome,amazing!


一位名叫 Rick Lamers 的外国小哥开源了一款与 Python 深度集成、基于 Web 的电子表格应用程序。



这个开源项目有多牛呢?如果你经常与 Excel、R Studio 和 Python 打交道,反复在各个应用间切换,它可以完美解决你的所有问题。这是一款程序员能用、运营能用、产品能用、财务能用的神器级 IDE。


为什么要开发 Grid Studio?


Grid Studio 主要要解决的问题是如何在开发数据科学项目时不需要在各种工具(比如 R Sudio、Excel)之间切来切去,因为那种体验实在太糟糕了。


在导出 CSV 文件时,因为行数太多或者尝试读取 JSON 文件会导致应用程序窗口没有响应。现有的工具无法提供高效的开发环境和工作流。


于是,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,等等。但如果你想要使用其他函数,那该怎么办?


自己动手写!


def UPPERCASE(a):        return str(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):


  1. 克隆代码库:git clone

  2. https://github.com/ricklamers/gridstudio

  3. 运行 bash 脚本(在 Windows 上使用 Git Bash):

  4. cd gridstudio && ./run.sh

  5. 在浏览器中打开

  6. http://127.0.0.1:8080


你感兴趣吗?


原文链接:


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


2019 年 7 月 31 日 17:4925790
用户头像

发布了 731 篇内容, 共 360.8 次阅读, 收获喜欢 1831 次。

关注

评论 1 条评论

发布
用户头像
好东西
2019 年 08 月 01 日 09:26
回复
没有更多了
发现更多内容

【Kafka】消费者客户端小结(java)

guoguo 👻

学习笔记

Qx

学习

学习python(嵩天老师的课)

Geek_2a27b0

linux入门系列9--用户管理及文件权限控制

黑马腾云

Linux centos centos7 linux运维 linux用户权限

jQuery笔记

一个坚强的小怪兽

jquery

区块链技术助力甘肃建食安信息追溯平台 为食品安全“立规矩”

CECBC区块链专委会

食品追溯 食品安全

第11周作业

娄江国

物联网SIM卡和SIM卡真的不是一回事

华为云开发者社区

人工智能 物联网 华为云 传感器 SIM卡

开源,轻松实现RTC与SIP互通

anyRTC开发者

WebRTC 编码 SIP 源码解析

终极学习法,你能学会任何东西--程序员的学习之路

盛安德软件

​JDK1.8新特性(八):还在重复写空指针检查代码?赶紧使用Optional吧!​

xcbeyond

Java 新特性 JDK1.8 Optional

网页游戏

小端taro

要老婆吗? AR一键生成的那种

程序员生活志

linux入门系列10--firewalld防火墙管理

黑马腾云

Linux centos 防火墙 linux运维 linux防火墙

没有一个冬天不会过去!疫情当下,企业“逆势而上”必选“上云”跑道

华为云开发者社区

云计算 新基建 华为云 企业上云 云服务器

INT类型知多少

Simon

MySQL

第11周总结

娄江国

全票通过!易观开源项目DolphinScheduler进入Apache孵化器

易观大数据

Devops与敏捷二者能否结合?

陈琦

DevOps Scrum 敏捷开发

linux入门系列8--shell编程入门

黑马腾云

Linux centos Shell linux命令 linux编程

内容审核平台助力猫爪构建健康安全的社交环境

百度大脑

人工智能 百度 百度大脑 内容审核

35岁大厂程序员被劝退!老板说:没年轻人有冲劲!真有内味了吗?

程序员生活志

程序员 职场

非IT行业大企程序员讲述MIS系统开发案例

Learun

敏捷开发 企业信息化 企业管理 .net core 「Java 25周年」

可能是首个支持部署 Deno 前后端应用的部署工具

binggg

taro GitHub 前端 deno Node

CHAR与VARCHAR详解

Simon

MySQL

区块链的想象,解决贫富差距

CECBC区块链专委会

区块链 货币 股市

英伟达收购ARM:双赢还是灾难?

脑极体

JVM原理与实战

东哥

英特尔神经拟态芯片Loihi大显身手 帮助轮椅上的儿童实现独立生活

飞天鱼2017

企业信息化怎么构建?

代码制造者

大数据 低代码 企业信息化 零代码 编程开发

linux入门系列7--管道符、重定向、环境变量

黑马腾云

Linux centos 运维 linux命令 管道符

再见Excel!我开源了一款与Python深度集成的神器级IDE-InfoQ