深度解析:会用Excel,还有必要学Python吗?

news2024/10/6 8:35:10

前言

某站上有个问题:

我都会用Excel了,还有必要学Python吗?

在这里插入图片描述
(文末送读者福利)

这个问题大概率可以说明问这个问题的这位同学目前还没有遇到非Python不可的场景,之所以产生了学Python的念头是因为这两年Python实在是太火了,如果自己不学总觉得差点什么。但是学了一点以后又发现Python做的那些事情,我Excel也可以做,既然如此,我为什么还要费这么大劲去学Python呢?

为什么要学Python

大家在学一个工具或者一项知识的时候,一定不要为了学而学,这样不仅学起来很痛苦,而且很难坚持下去的。

那既然如此,是不是我们就可以不学Python了?不是的,你想想为什么现在几乎所有的招聘要求上都会要求掌握Python技能?
在这里插入图片描述
原因主要有两个:

1、有些事情虽然Excel也能做,但是用Python效率会更高

2、有些事情是只有Python可以做,而Excel是做不了的
综合这两个原因,就要求你必须掌握Python技能,虽然不一定100%的工作都用Python,但是不得不用Python的时候你得会。

Excel和Python在不同场景下的异同

接下来我们就围绕一名数据从业者在工作中可能会涉及到的工作内容进行展开,看看不同工作内容下,Excel和Python的异同。主要从以下几方面进行展开:

数据处理与运算
报表自动化
图表可视化
统计检验
机器学习算法
数据处理与运算

数据处理与运算这部分工作是我们工作中的大头,我们先来看下关于数据处理与运算中比较高频的一些内容:
在这里插入图片描述
学过Excel的同学对这些应该都不陌生,这些内容在Excel是完全可以实现,在Python中也是可以实现的,那我们应该如何选呢?

原则就是哪个方便用哪个,如果你现在只有100行数据,你现在要对这100行数据进行降序排列,这个时候肯定用Excel效率更高,你用Python的话还需要先把数据导入到Python中以后再做处理,相对来说更麻烦一些。

但如果你的数据条数超过10万行,你试着用Excel执行一下删除重复值的操作,几乎会瞬间无响应,然后Excel就闪退了,很多人又没有及时保存文件的习惯,闪退会导致之前做的工作白做了。如果你用Python的话,首先Python处理几十万条数据的时候,速度还是可以的,即使速度慢一点,大多数时候是不会出现软件闪退的,而且即使闪退了,之前的代码是有的,只需要把之前的代码重新运行一遍就好了,不需要重头再做。(文末送读者福利)

如果你的数据超过100万行,那么就只能用Python了,因为Excel的最大行数为1048576行。

需要声明的是,不管是Excel还是Python,数据处理速度会跟电脑自身的性能有很大关系。

综上,如果你平常接触的数据都是10万以内的小数量级,那么其实是可以不学Python的,但如果需要经常处理大数量级的数据,还是有必要学一学Python的。

报表自动化

报表是作为一个数据从业者不得不做的一件事,常见的报表就是日报、周报、月报这些,这些报表有一个好处就是格式比较固定,只有固定的内容我们就可以进行自动化。而所谓的自动化就是让机器代替人工做事情的过程。

下图是我列的常规报表自动化的流程,主要分为5个步骤,核心在于前两个步骤,先对整个报表制作流程进行拆解,拆解成若干个小的步骤,然后再找每个步骤对应的代码是什么,最后把小步骤的代码合并起来就是整个报表制作的代码,我们每次只需要把写好的代码运行一遍,结果就自动出来了,也就达到了报表自动化的目的。

在这里插入图片描述

运行效率:

在代码这一块我们既可以用Excel中的VBA,也可以用Python。那我们应该如何选呢?首先看效率问题,有个博主专门测试过Python和VBA逐行读取同一个文件,Python耗时0.639秒,VBA耗时2.855秒,两者相差4.x多倍。

书写效率:

除了执行效率方面以外,还有就是代码书写效率,下面截图是从网上找的一个关于读取txt文件的VBA代码:
在这里插入图片描述
下面是用Python读取txt文件时的代码:

import pandas as pd
pd.read_table('file_name.txt')

是不是明显Python的代码要更简洁,而且更容易理解,read_table就是读取文件,多直观。

综上,如果是平常有大量工作需要自动化的话,也还是有必要学习Python的。

图表可视化

效率方面:
图表可视化也是我们日常工作中比较使用比较高频一部分,图表除了传递信息以外,还要尽可能的美观,让看表的人视觉体验更好。

下图中左半图时Excel默认的折线图样式,右半图时Python中Seaborn库中默认的折线图样式,很明显右图要比左图观看体验上更好一些。

在这里插入图片描述
虽然Excel图表在进行专门的样式设置以后也能达到比较好看的效果,但是进行样式设置很耗费时间的,我们还是希望用更少的时间得到稍微不那么丑的图表。

再比如绘制统计学中的核密度图,虽然Excel中也可以通过复杂的操作实现,但是Python中只需要如下一行代码就可以绘制出比较好看的核密度图:

sns.displot(penguins, x="flipper_length_mm", hue="species", kind="kde", multiple="stac

在这里插入图片描述

图表全面性:

上面是看了Excel和Python的在效率方面的差异,接下来我们看下在图表全面性方面两者的差别。

折线图、柱状图是比较常见的一些图表,除了这些比较常规的图表以外,我们有的时候我们还会去绘制一些比较专业图表,比如小提琴图,在Excel里面就不太好去实现,而在Python里面也只需要如下一行代码就可以轻松实现:(文末送读者福利)

sns.catplot(x="day", y="total_bill", hue="sex",
            kind="violin", split=True, data=tips)
            

在这里插入图片描述
在图表可视化方面,Python中有很多的库可以供我们使用,下面是一些比较常用的库的官网,我们只需要根据具体场景选择适合自己的就好了。

matplotlib官网:https://matplotlib.org/

pyecharts官网:https://pyecharts.org/#/

seaborn官网:https://seaborn.pydata.org/index.html

plotly官网:https://chart-studio.plotly.com/feed/#/

Boken官网:https://docs.bokeh.org/en/latest/

综上,如果平常工作中对图表的视觉体验没太多要求,而且也涉及到一些高级的统计图表的话,Excel就用了。如果要是对效率和图表的全面性都有要求的话,还是有必要学Python的。

统计学检验

我们在平常工作中会做很多AB测试,而AB测试的核心就是背后的统计学检验,我们看下Excel和Python在统计检验方面有啥区别。

统计检验中比较基础的检验就是T检验。

在Excel中进行T检验时,使用的TTEST()函数,在该函数中指明要检验的两组数据核检验分布即可,也比较简单:
在这里插入图片描述
在Python中进行T检验时,使用的代码如下:

stats.ttest_ind(treat_data, control_data)

从简单的T检验来看的话,两者基本没啥差别。

稍微高级一点的就是多重检验,就是用来检验多组内任意两组之间的差异情况,此时如果在Excel中需要用到人工进行两两比较,而在Python中只需要下面一行代码即可得出两两之间的检验结果。

MultiComparison(data, groups)

综上,一些简单的检验的话,Excel和Python是没啥区别的,而一些稍微复杂的检验的话,Python里面都会把复杂的步骤封装好,使用起来会更方便。

机器学习算法

作为一名数据分析师,虽然日常工作中的主要工作不是做算法,但是还是需要对一些常见算法的原理和实现是了解的。

机器学习领域比较知名的库就是Sklearn,用这个库可以让你很轻松的就能够实现一个机器学习算法。

算法里面最基础的就是线性回归了,运行如下代码就可以求取出线性回归的各项系数:

from sklearn import linear_model
reg = linear_model.LinearRegression()
reg.fit([[0, 0], [1, 1], [2, 2]], [0, 1, 2])
reg.coef_

Sklearn库中不仅包含了常见的分类和回归算法,还包含了特征工程等部分,让你轻松掌握机器学习。
在这里插入图片描述
而Excel中是没有这种条件的。

上面从各个方面介绍了在不同场景下Excel和Python的异同,相信大家对于自己到底要不要学Python应该比较清楚了。那如果想学,我们应该怎么学呢?

怎么学

学习Python首先要明白两句核心内容,只要真正理解了这两句话,那你学起来会很快的:

1、不管Excel还是Python,这些都是实现工具而已,背后的理论原理是都一样的;2、常用的功能大概占全部功能的20%,刚开始学,要抓主要矛盾,学主要内容,等把主要内容学会以后,再学次要内容就容易很多了。

对比学习法

Excel中的数据透视表大家应该都比较熟悉,核心就是下面这四个框,只需要把不同的字段拖到对应的框里面就行。(文末送读者福利)

在这里插入图片描述
如果现在我让你用Python对一个数据表做一个数据透视表,你肯定会一脸懵,Excel中都是鼠标拖拽的,Python要怎么实现呢?

其实也简单,在Python中做数据透视表需要用到pivot_table()函数,该函数的关键参数如下:

pd.pivot_table(data,values=None,index=None,columns=None,aggfunc='mean')

看到这里应该还不太明白,我们再往下看:
在这里插入图片描述
看到这张图是不是就差不多理解了,不同的参数其实就代表Excel中不同的框,在Excel中是用鼠标把字段拖到框里面,在Python中是将字段名赋值给相应的参数。

pivot_table()函数中的data参数表示要做数据透视表的整个表,aggfunc表示对values的进行什么样的运算。

数据透视表不是Excel所独有的,在不同工具里面的实现逻辑是一样的,只不过具体的实现方式会不一样,但是只要我们把背后的逻辑掌握了,然后借助于我们现有的、比较熟悉的Excel去学习和理解Python的实现方式,这样学起来就会轻松很多。
在这里插入图片描述
其实不仅是透视表这个案例,我们所用到的很多知识都是可以按照这种思路去学习的,我们把这种学习方法称为对比学习法。

我的《对比Excel》系列三本书:《对比Excel,轻松学习Python数据分析》、《对比Excel,轻松学习SQL数据分析》、《对比Excel,轻松学习Python报表自动化》均是采用了这种思想进行写作的。

先解决主要矛盾

很多Python的书和课程会追求大而全,会讲很多又难但又使用频率不那么高的知识点,比如面向对象编程,很多学了几年的人也没学会,新手一学更是懵逼。这些知识点会把很多新人劝退的,真正的做到了从入门到放弃。
在这里插入图片描述
我们在刚开始学的时候,尽量去学那些主要的知识点,学完之后马上逼自己把学到的应用到实际工作中,当你看到学有所用的时候,大脑会形成正向反馈,越学越有劲,很快就学会了。

读者福利:知道你对Python感兴趣,便准备了这套python学习资料

对于0基础小白入门:

如果你是零基础小白,想快速入门Python是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面还可以找到适合自己的学习方案

零基础Python学习资源介绍

👉Python学习路线汇总👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(学习教程文末领取哈)

👉Python必备开发工具👈

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

👉实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

👉100道Python练习题👈

检查学习结果。

👉面试刷题👈



在这里插入图片描述

资料领取

这份完整版的Python全套学习资料已为大家备好,朋友们如果需要可以微信扫描下方二维码添加,输入"领取资料" 可免费领取全套资料【有什么需要协作的还可以随时联系我】朋友圈也会不定时的更新最前言python知识。
在这里插入图片描述

这世界上赚钱成本最低的就是:用知识投资大脑

人生什么时候学习都不晚,晚的是你一直想学却一直没有行动,而导致大量内耗

最后祝你学习愉快

好文推荐

了解python的前景:https://blog.csdn.net/weixin_49891576/article/details/127187029

python有什么用:https://blog.csdn.net/weixin_49891576/article/details/127125308

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/4975.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

今日分享:文字转语音软件哪个好

如今已经进入到了一个短视频时代,大家饭后或者闲暇时都会通过刷视频来消磨时间,而部分小伙伴看到一些有趣的内容,也想试着自己制作一下。但众所周知,视频拍摄容易,后期剪辑制作确实异常困难的,有许多道工序…

从boot引导到loader引导完整运行

此文针对该文章对loader引导进行了完善后的完整运行过程。(具体细节请参见下文) boot引导升级,成功引导运行loader_What’smean的博客-CSDN博客boot引导升级,成功引导运行loaderhttps://blog.csdn.net/weixin_42492218/article/d…

【数据结构】11道LeetCode链表OJ练习

文章目录1. 移除链表元素2. 反转链表3. 链表的中间节点4. 链表中倒数第k个节点5. 合并两个有序链表6. 链表分割7. 链表的回文结构8. 相交链表9. 环形链表10. 环形链表II11. 复制带随机指针的链表补充内容:浅谈顺序表和链表的区别1. 移除链表元素 移除链表元素OJ链接…

扫雷游戏优化详解——c语言实现

文章目录 一、扫雷游戏的简单认识与解释 二、扫雷游戏的代码及思路实现 一、扫雷游戏的思路 1、菜单打印 2、创建扫雷区 3、初始化雷区 4、打印雷区 5、布置雷区 6、排雷 三、扫雷游戏代码的整合 game.h game.c test.c 标题:猜数字小游戏 作者:Ggggg…

你适合考PMP还是软考?两者的区别是否清楚,分别能给你带来什么价值

PMP与软考之间有什么区别,应该考哪个更适合自己? 下面从9个方面给大家简单的介绍做一个对比,希望能帮上忙~ 软考和PMP哪个更适合自己? 01 考试介绍 PMP:PMP是项目管理专业人士资格认证,由美国项目管理协…

腾讯云相同配置8核16G的云服务器和轻量服务器该如何选择?

很多个人或者中小企业用户在选择云服务器的时候,已经确认配置的情况下,去选购的时候发现有出现了轻量应用服务器,那么轻量应用服务器和云服务器又有哪些区别,价格为啥又有那么大的差别,该如何选择呢? 从上边…

SSM框架整合详细教程

目录 1. 什么是SSM? 2. SSM整合的时候容器之间如何访问 3. SSM下面的开发步骤 4. SSM整合时候时容易混乱的知识点 1. 什么是SSM? SSM是对三个框架名字的简写,其中第一个S指的是SpringMVC,第二个S指的是Spring,第三个M指的是M…

项目搭建(七)爱心代码❤网站部署(静态网站)

爱心代码❤网站部署(静态网站)一、环境基础二、修改Tomcat启动配置三、放置静态网站四、启动Tomcat一、环境基础 如果你已经部署了Apache-Tomcat,恭喜你,你已经完成90%的部署工作 如果没有tomcat,那你先部署tomcat吧 …

4_单机优化(确定性算法,优化框架)

优化框架机器学习的优化框架正则化经验风险最小化优化算法的收敛速率假设条件凸函数定义强凸函数定义光滑函数定义优化算法的分类机器学习的优化框架 正则化经验风险最小化 有监督的机器学习问题: 假设输入输出数据 Sn{(xi,yi);i1,...,n}S_n \left\{(x_i, y_i);…

C++与C语言中的字符串

目录 1、关于c语言中的字符串 (1)c语言中字符串与字符指针 (2)字符串结尾 2、关于c中的字符串string (1)从本质上了解string (2)c中的字符串转换与关联 (3&#x…

【MySQL入门指北】MySQL备份及恢复

MySQL备份及恢复 文章目录MySQL备份及恢复1.Percona 介绍2.安装Percona 需要的 MySQL 包3.安装percona-xtrabackup4.完全备份流程5.完全恢复流程6.增量备份流程7.差异备份8.差异恢复流程9.记录的导入和导出10.mysqldumpbinlog11.MySQL恢复数据12.二进制日志恢复13.误删除库的问…

基于51单片机的室内温度可燃气体检测报警系统Proteus仿真

资料编号:133 下面是相关功能视频演示: 133-基于51单片机的室内温度可燃气体检测报警系统Proteus仿真(源码仿真全套资料)功能介绍: 采用51单片机作为主控,LCD1602显示当前温度和可燃气体浓度,…

Netty源码阅读(1)之——客户端源码梗概

目录 准备 开始 NioSocketChannel 的初始化过程 指定 初始化 关于unsafe属性: 关于pipeline的初始化 小结 EventLoopGroup初始化 小结 channel的注册过程 handler的注册过程 客户端连接 总结 准备 源码阅读基于4.1.84.Final版本。从github下载netty项目…

WordPress设置浏览器切换标签网站动态标题

我们在逛别人网站的时候,经常看到,有些网站当我们离开该页面浏览其他页面的时候,离开的页面标题上会显示比如:“你别走吖 Σ(っ Д ;)っ”这样的字样,当我们点回来的时候页面上面的标题又变成了“你又回来啦&#xff0…

[附源码]计算机毕业设计JAVAjsp学生档案管理系统

[附源码]计算机毕业设计JAVAjsp学生档案管理系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM myb…

前端基础向--从项目入手封装公共组件

本文就从 “详情卡片” 业务组件的封装的几个阶段来说明我在编写公共组件的设计思路。 1. 阶段一:基础需求 假设我们现在有这样一个需求:需要满足显示产品的详细信息;需要可以根据不同分辨率适配不同的显示方式(2列,…

【Linux】进程通信 | 管道

今天让我们来认识如何使用管道来进行进程间通信 文章目录1.何为管道?1.1 管道是进程间通信的一种方式1.2 进程通信1.3 管道分类2.匿名管道2.0 康康源码2.1 创建2.2 父子通信完整代码2.3 等待写入等待读取等待源码中的体现2.4 控制多个子进程2.5 命令行 |3.命名管道3…

linux无界面手敲命令笔记

0 Ubuntu相关命令简介 1. 文件及目录操作命令 pwd:显示用户当前所处的目录 ls:列出目录下的文件清单 cd:改变当前目录cd … 返回上一级目cd / 进入根目录不加参数或参数为“~”,默认切换到用户主目录 mkdir:建立目录 …

Ant Design表单之labelCol 和wrapperCol的实际开发笔记

目录 前言 一、labelCol和wrapperCol是什么 二、布局的栅格化 1.布局的栅格化系统的工作原理 三、栅格常用的属性 1.左右偏移 2.区块间隔 3.栅格排序 四、labelCol和wrapperCol的实际使用 总结 前言 主要是记录一下栅格布局的一些属性和labelCol、wrapperCol等。 一…

[附源码]java毕业设计毕业设计管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…