数据爆炸的时代,你是用 Excel 来做数据分析,还是 Python?
好消息!现在再也不用做这道选择题了。
就在昨日,微软于官方博客上重磅宣布已将 Python 原生集成到 Excel 公共预览版中,这将允许数据分析师、工程师、营销人员亦或是学习数据科学的学生都可以直接使用 Python代码、库在 Excel 中执行复杂的统计分析、高级可视化、预测分析和机器学习等等。
Excel 和 Python 可以同时使用
“你可以使用 Python绘图和库在 Excel 中操作和探索数据,然后使用 Excel 的公式、图表和数据透视表进一步完善自己的见解”, Microsoft 现代工作总经理Stefan Kinnestrand 解释道,“现在,你可以通过直接从 Excel 功能区访问 Python,在熟悉的 Excel 环境中进行高级数据分析。”
在 Excel 中使用 Python 无缝聚合和可视化你的数据
详细来看,微软在官方博客中从几个维度分享了 Excel 中 Python 的不同之处。接下来,我们不妨共同来看一下。
无须下载任何软件,直接在 Excel 中用 Python 代码
首先,值得注意的是,Excel 中的 Python 是直接原生集成到 Excel 表格中的。
因此,对于普通用户而言,打开 Excel 表格,直接在单元格中输入=PY 函数就能直接将 Python 代码输入到 Excel 表格中,不需要安装任何其他软件。
所谓点几下鼠标,就可完成编码。这不仅降低了编码的门槛,还是提升了工作效率。
除此之外,用户也可以使用 Excel 的内置连接器和 Power Query,直接将外部数据引入到 Excel 工作流程的 Python 中。而且,Excel 中的 Python 与用户已经熟悉和喜爱的工具例如公式、数据透视表和 Excel 图表都是兼容的。
利用第三方开源发行版,实现 Python in Excel
那要问这一功能是如何实现的?
对此,微软解释道,新功能利用了一个开源 Python 的发行版 Anaconda(https://www.anaconda.com/download),这是一个面向数据科学家和工程师的企业,对初学者也很友好。
Anaconda 包括许多预打包库和软件包,如 pandas、Matplotlib、scikit-learn、NumPy 和 SciPy。
Python in Excel 利用在 Azure 中运行的 Python Anaconda Distribution,由 Anaconda 安全构建、测试和支持。Anaconda 提供的 Python 支持在 Excel 中使用 Python 进行各种分析。
安全性如何保证?
另外,为了保证安全性,Python in Excel 在微软云上运行,计算结果会返回到工作表中,包括图表和可视化效果。这使得用户在 Microsoft 365 体验中具有企业级的安全性。
Python 代码通过安全软件供应链,使用 Azure 容器实例和来自 Anaconda 的安全源代码包,在自己的管理程序隔离容器中运行。
Excel 中的 Python 可以防止 Python 代码知道用户个人的身份,并在各自独立的容器中进一步隔离地从互联网打开工作簿,从而保护用户的数据隐私。
工作簿中的数据只能通过内置的 xl() Python 函数发送,Python 代码的输出只能作为 =PY() Excel 函数的结果返回。
同一个团队之间无缝协作
更为强大的是,微软在博客上分享道,同一个团队的成员可以与基于 Python in Excel 的分析进行无缝交互并刷新分析结果,而无需担心安装其他工具、Python 运行时或管理库以及相互之间的依赖关系。
用户可以使用自己喜欢的协作工具(如 Microsoft Teams 和 Microsoft Outlook)共享工作簿,并像在 Excel 中一样,通过评论、@ 提及和与同事共同撰写等方式无缝协作。
Excel 中的 Python 到底能干什么?
在博客上,微软还举了几个示例来分享 Excel 中的 Python 详细用途。
其一,可视化。
在 Excel 中,用户可直接利用 Python 丰富的第三方库如 Matplotlib 和 seaborn 来创建各种图表,包括构建传统的条形图、线图、热图、小提琴图和群图等等。
其二,机器学习、预测分析。
利用 scikit-learn 和 statsmodels 等 Python 库的功能来应用流行的机器学习、预测分析和预测技术,例如回归分析、时间序列建模等。
使用 Python 和 Excel LAMBDA 预测天气的机器学习模型
其三,数据清理。
有效利用先进的数据清理技术,例如查找缺失值、标准化格式、删除重复项以及采用正则表达式等技术进行基于模式的转换。
使用正则表达式提取日期
Python 之父 Guido van Rossum:三年前加入微软时,我做梦也想不到会有这种可能
不得不说,微软如今能够将主流的编程语言 Python 集成到主流的办公软件中,背后或许离不开 Python 之父 Guido van Rossum 的努力。
2020 年 11 月,耐不住退休生活的寂寞,Guido Van Rossum 发推表示:「退休生活太无聊了,我决定加入微软的开发者部门!」
那时,他只是透露加入微软是要继续开发优化 Python,让这一技术变得更加重要,并且不仅仅是在 Windows 上。
时隔三年,我们看到微软正在深度拥抱 Python。据微软透露,Guido van Rossum 在此次更新中,帮助定义了 Excel 中 Python 的架构。
Guido van Rossum 也表示,”我很高兴,Python 和 Excel 的这种出色、紧密的集成现在终于有了用武之地。我希望两个社区都能在这次合作中找到有趣的新用途,从而增强每个合作伙伴的能力。当我三年前加入微软时,我做梦也想不到会有这种可能。Excel 团队非常出色!”
开发者振奋
当前,Excel 中的 Python 主要面向 Microsoft 365 Insiders 推出,将从内部版本 16818 开始,如今只能在桌面版 Excel 中使用,微软表示,会在晚些时候推送到其他平台。
如果你已经加入了 Microsoft 365 Insider Program(https://insider.microsoft365.com/join/windows),只需安装 Excel 的最新 Insider 版本后,打开一个空白工作簿,然后执行以下步骤,就可以尝鲜了。
- 选择功能区中的公式。
- 选择插入 Python。
- 在出现的对话框中选择尝试预览按钮。
不过,微软也表示,在预览期间,Excel 中的 Python 将包含在 Microsoft 365 订阅中,但在预览结束后,“如果没有付费许可证,某些功能将受到限制”。
对于这一功能发布,多数开发者感到兴奋。
一位微软前员工在 HN 评论道:
“作为一名曾试图将 Python 引入 Excel 的前 Excel 开发人员,今天看到这篇文章真是惊喜万分。
7 年多前,我选择离开 Excel 团队。当时我老板的老板知道我对将 Python 带入 Excel 感兴趣,于是给了我一个机会,如果我选择留下的话。然而,原本为期 6 个月的项目变成了长达 3 年的项目,Python 部分逐渐消失,我们最终在 Excel 中启用了 JavaScript 自定义函数。
就 Python 而言,当时我们也是在 “云”中运行(AzureML v1),不过后来就是否应在本地运行的问题上,我们也进行了一些反复讨论。我认为让 Python 部分消失的原因是我们的合作伙伴 AzureML 团队重新锻造、重新发布、重新雇用,我们失去了一位 PM,我们的工作引起了另一个合作伙伴团队的注意,他们意识到可以使用我们的代码在进程外执行他们的 JavaScript。因此,我花了很多时间来确保该功能的成功发布,我想,这对 Python 是不利的。
我得到了一些优秀工程师的帮助,学到了很多东西。这项工作的核心是修改 Excel 的计算引擎,允许函数异步计算,这样用户就可以在远程端点(无论是 JavaScript、Python 还是其他)计算的同时继续处理电子表格的其他部分。以前,电子表格会在计算运行时锁定,这对于长期运行的无限制计算来说并不酷。不知道我们当时构建的任何功能是否都被纳入了这项新功能。
现在,非常高兴看到这一点,并期待着试用它。”
另一位开发者@cableshaft 表示:
“我希望它不只是由微软云提供支持,还能支持在本地运行 Python,但无论如何,我认为这仍将是一个巨大的项目,它将极大地推动 Excel 的现代化。
我想到我以前做的一个项目,就是建立一个分析网站,内部只有少数几个人使用,如果当时有这样的东西,就能很好地满足他们的需求。”
不过,也有开发者称,随着 Python 进入了 Excel,成为了压死 VBA 宏的最后一根稻草。
最后,Excel 中原生集成 Python 于你而言是否有用?欢迎分享你的想法。
来源: https://mp.weixin.qq.com/s/BzXxI_NRdE-tjSh-IHmTKA