Excel支持Python了,你先冷静一下
off999 2024-12-13 15:37 24 浏览 0 评论
HI,大家好,我是星光。
今天给大家聊一下这段时间很火热的Python in Excel,希望大家看完之后冷静一下,不要再天天催更了。
本期推文主要回答大家以下几个问题:
1,什么是Python in Excel
2,如何拥有它
3,如何使用它计算Excel数据
4,它的优劣是什么,函数/VBA等还有必要学吗?
1,什么是Python in Excel
前几天微软宣布在Excel中支持使用Python。Python是近几年来最流行、用户最多的编程语言,没有之一,你也许不会用它,但一定听说过它。不过目前该功能还处于灰度测试中,只有Excel 365版本的Beta部分用户可用。
2,如何加载Python功能
首先需要加入Microsoft 365预览体验计划,在搜索栏搜索关键字预览体验计划,点击「Microsoft 365预览体验计划」,在打开的对话框中勾选「为我注册以抢先体验...」,计划频道选择Beta版频道,勾选[我同意约束...」,最后单击「确定」。
关闭Excel重启,在候审1分钟~24+小时之后,在公式选项卡下,你就有可能会看到Python功能组了。
当然了,也有可能看不到。目前这个功能还处于灰度测试中,并不是人人都会被灰的…还是要看脸你看看我——懂了吧?
3,如何使用Python in Excel
微软是这么说的:Excel for Windows 中提供了 Excel 中的 Python。此功能在 Excel for Mac、Excel web 版、Excel for iPad、Excel for iPhone 或 Excel for Android 中不可用——说人话:目前最靠谱的平台是Excel for Windows,其它用不了。
除此之外,Excel中的Python是在微软云中运行的。言外之意有两个:
1,你电脑中是否安装的Python对它没有任何意义。
2,得联网。
符合以上要求之后,在单元格中输入=PY(,或者点击菜单栏中的「插入Python」命令,编辑栏就会自动转换为PY代码编辑模式了。
这个编辑模式不但简单而且极其——简陋不提供完整的语法提示功能,和盲打Python差别不大,真一个手工出细活。
环境搭载完成后就进入了数据处理的阶段,众所周知,这包含了三个过程:数据获取、数据计算和数据输出。
□如何读取数据
在PY代码编辑模式下,使用鼠标框选单元格区域,编辑栏会自动生成一个叫xl的函数,它返回Python库Pandas的一个DataFrame对象。
该函数有两个参数,第1个参数表示引用的单元格或区域,第2参数是可选的,表示是否包含标题行,True是包含,Flase不包含。
按组合键<ctrl+回车>可以结束代码输入,注意不是单纯的按回车,只按回车键是代码换行。
……这里额外说两句,很多朋友看到Excel支持Python后高兴的原因之一是,以为Excel可以调用Python异常丰富的各种包,实现抓取网页数据,读取合并各种文件的数据源…
看我忽闪忽闪的小眼神,想多了呀朋友,微软帮助文件明确说明,Py Excel无法发出网络请求或访问本地计算机上的文件和数据。它自身甚至连跨工作薄读取Excel数据的能力都没有。如果需要跨工作簿计算数据,还得先用PQ把数据引用进来…。
□如何输出数据
Py Excel代码返回的结果默认为Python对象,需要将输出模式修改为「Excel的值」才能以动态数组的形式在工作表内显示具体的数据修改方法参见下图:
□如何计算数据
Python的基本语句和常用对象,PY Excel都是支持的。比如元组、列表、字典、循环和条件语句、自定义函数和类等等。
支持类▲
除此之外,它还内置了5个常用的数据分析和可视化的库:Pandas、Numpy、matplotlib、seaborn和statsmodels。另外,使用import语句,也可以导入Anaconda 提供的其他库(但出于数据安全性的考虑,导入≠可用)
对于经常使用工作表函数解决Excel问题的朋友来说,最常用也是最重要的是Pandas。这个库有多重要呢?我说个事你就明白了。它一个库就是一个完整的数据处理体系,以至于Power Query的M函数便是借鉴了它的产物,但M函数比起Pandas本尊来相差甚远。
举几个基础小案例。
近几年来Excel工作表函数最让人诟病的问题之一,是一直没有提供分组+自定义计算方式的函数,借助Pandas的groupby语句我们可以轻松解决这类问题。
如上图所示,以下简短的代码就可以统计成绩表每个班级的人数、最高分、最低分和平均分。
df = xl("A1:C10", headers=True)
df.groupby("班级").成绩.agg(
人数 = "count",
最高分 = "max",
最低分 = "min",
平均分 = "mean"
)
第1行代码使用xl函数读取数据,并将返回的DataFrame对象赋值变量df。
第2~7行代码使用groupby语句对df按班级字段分组,并统计每个分组内成绩的人数、最高分、最低分和平均分。
……
再如上图所示,以下简单的代码可以统计不同商品在不同平台最新且最低的价格和日期。
df=xl("A1:D10", headers=True)
(df.groupby(['平台','商品']).apply(lambda x:
x.sort_values(by=['日期','价格'],ascending=[0,1])
.head(1))
.droplevel([0,1])
)
第1行代码读取数据。
第2~6行代码先按平台和商品字段对数据分组,然后遍历各个组内的数据,按日期和价格排序后取第一行数据。
……
工作表函数最让人诟病的问题之二,是不支持正则表达式,现在,PY Excel来了。
以下代码可以将上图中A列的数据按照数据类型拆分成三个字段。
df = xl("A1:B4",headers=True)df.数据.str.extract( "([\u4e00-\u9fa5]+)([A-Z\d\.]+)([\u4e00-\u9fa5]+)")
……
虽然一直号称举例子大力士但事不过三就先这样吧,举多了伤肾而且你们也就瞎看个热闹。
打个响指,回答一下最后一个问题。
Python in Excel的优劣是什么?
——值得学吗?
先说优点吧,优点其实是显而易见的,作为当今最流行的编程语言,Python的强大毋庸置疑,人生苦短就用Python嘛。很多函数很难解决甚至无法解决的问题,换用Python往往会变得很简单。但是——
当Python以函数而非脚本的形式出现在Excel中,而且只支持微软云运行后,缺点更是显而易见的。
出于数据安全考虑(软说的),像工作表函数一样,它无法直接跨文件读取数据,也无法操作其它对象,比如说工作表/簿新建和删除、数据库的读写、邮件的收发、PPT的制作等——它实现的不是大家想象中的办公自动化脚本功能,而只是数据计算和可视化。群里有朋友问PY Excel出来后VBA是不是就淘汰了,那明显属于想多了。
在国内的环境中,微软云的传输效率大家多少了解,Py Excel号称能计算100M的数据量,但实际上计算几千行就开始噗哧噗哧大喘气了。函数十几秒VBA一刹那就可以完成的计算量,它需要花费数分钟——也未必行,计算结果经常会返回#BUSY!(我在线忙你等会的意思)。
另外,从灵活性上来说,Py Excel也远远不如Excel自身的工作表函数体系。
所以目前来看,它只是Excel处理数据的一个有益的补充,给用户多一种选择,仅此而已。别沸腾Excel又革命了,先做个合格的改良派再说吧(~我是说目前啊)。
如果你会Python,我想不出你有什么理由一定要在Excel里写Python——编辑器极其简陋,计算效率属实不给力,跨平台能力无。
如果你不会Python,我也想不出你有什么理由会在Excel里写Python——毕竟你不会啊。
所以这个东西它深重的意义是什么?——这就需要发挥想象以及且观后效了。
图文作者:看见星光
原载:Excel星球
相关推荐
- Python四种常用的高阶函数,你会用了吗
-
每天进步一点点,关注我们哦,每天分享测试技术文章本文章出自【码同学软件测试】码同学公众号:自动化软件测试码同学抖音号:小码哥聊软件测试1、什么是高阶函数把函数作为参数传入,这样的函数称为高阶函数例如:...
- Python之函数进阶-函数加强(上)(python函数的作用增强代码的可读性)
-
一.递归函数递归是一种编程技术,其中函数调用自身以解决问题。递归函数需要有一个或多个终止条件,以防止无限递归。递归可以用于解决许多问题,例如排序、搜索、解析语法等。递归的优点是代码简洁、易于理解,并...
- 数据分析-一元线性回归分析Python
-
前面几篇介绍了数据的相关性分析,通过相关性分析可以看出变量之间的相关性程度。如果我们已经发现变量之间存在明显的相关性了,接下来就可以通过回归分析,计算出具体的相关值,然后可以用于对其他数据的预测。本篇...
- python基础函数(python函数总结)
-
Python函数是代码复用的核心工具,掌握基础函数的使用是编程的关键。以下是Python函数的系统总结,包含内置函数和自定义函数的详细用法,以及实际应用场景。一、Python内置函数(...
- python进阶100集(9)int数据类型深入分析
-
一、基本概念int数据类型基本上来说这里指的都是整形,下一届我们会讲解整形和浮点型的转化,以及精度问题!a=100b=a这里a是变量名,100就是int数据对象,b指向的是a指向的对象,...
- Python学不会来打我(73)python常用的高阶函数汇总
-
python最常用的高阶函数有counter(),sorted(),map(),reduce(),filter()。很多高阶函数都是将一个基础函数作为第一个参数,将另外一个容器集合作为第二个参数,然...
- python中有哪些内置函数可用于编写数值表达式?
-
在Python中,用于编写数值表达式的内置函数很多,它们可以帮助你处理数学运算、类型转换、数值判断等。以下是常用的内置函数(不需要导入模块)按类别归类说明:一、基础数值处理函数函数作用示例ab...
- 如何在Python中获取数字的绝对值?
-
Python有两种获取数字绝对值的方法:内置abs()函数返回绝对值。math.fabs()函数还返回浮点绝对值。abs()函数获取绝对值内置abs()函数返回绝对值,要使用该函数,只需直接调用:a...
- 【Python大语言模型系列】使用dify云版本开发一个智能客服机器人
-
这是我的第359篇原创文章。一、引言上篇文章我们介绍了如何使用dify云版本开发一个简单的工作流:【Python大语言模型系列】一文教你使用dify云版本开发一个AI工作流(完整教程)这篇文章我们将引...
- Python3.11版本使用thriftpy2的问题
-
Python3.11于2022年10月24日发布,但目前thriftpy2在Python3.11版本下无法安装,如果有使用thriftpy2的童鞋,建议晚点再升级到最新版本。...
- uwsgi的python2+3多版本共存(python多版本兼容)
-
一、第一种方式(virtualenv)1、首先,机器需要有python2和python3的可执行环境。确保pip和pip3命令可用。原理就是在哪个环境下安装uwsgi。uwsgi启动的时候,就用的哪个...
- 解释一下Python脚本中版本号声明的作用
-
在Python脚本中声明版本号(如__version__变量)是一种常见的元数据管理实践,在IronPython的兼容性验证机制中具有重要作用。以下是版本号声明的核心作用及实现原理:一、版本号...
- 除了版本号声明,还有哪些元数据可以用于Python脚本的兼容性管理
-
在Python脚本的兼容性管理中,除了版本号声明外,还有多种元数据可以用于增强脚本与宿主环境的交互和验证。以下是一些关键的元数据类型及其应用场景:一、环境依赖声明1.Python版本要求pyth...
- 今年回家没票了?不,我有高科技抢票
-
零基础使用抢票开源软件Py12306一年一度的抢票季就要到了,今天给大家科普一下一款软件的使用方法。软件目前是开源的,禁止用于商用。首先需要在电脑上安装python3.7,首先从官网下载对应的安装包,...
- 生猛!春运抢票神器成GitHub热榜第一,过年回家全靠它了
-
作者:车栗子发自:凹非寺量子位报道春节抢票正在如火如荼的进行,过年回家那肯定需要抢票,每年的抢票大战,都是一场硬战,没有一个好工具,怎么能上战场死锁呢。今天小编推荐一个Python抢票工具,送到...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python字典遍历 (54)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (60)
- python读取文件夹下所有文件 (59)
- java调用python脚本 (56)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)