2017年,全球估计有7.5亿人使用Excel。2017年世界人口约76亿。这意味着大约有10%的人在使用Excel,我猜主要是为了数据分析。太疯狂了。
毫无疑问,Excel对于公司来说是一个极其重要的工具,在每个数据分析师和科学家的工具包中仍然占有一席之地,但是对于大多数工作来说,您需要停止使用Excel并升级到Python。我要告诉你为什么。
因此,如果您还没有迈出学习Python的一步,并将您的数据分析和可视化技能提升到一个新的水平,我将向您介绍5个为什么您现在需要学习Python的原因。到最后,我相信您将期待着用Python替换大部分Excel工作。
规模与自动化
当你想用小数据进行快速的、特别的分析时,Excel是很好的,但是一旦你想转移到更大的范围,它就不起作用了。Excel可以支持多达1048576行16384列的数据。另一方面,Python可以根据内存的大小进行扩展,并且还拥有许多支持内存不足计算的工具。
例如,Dask库允许您将计算扩展到在一个计算机集群上运行,而不仅仅是在笔记本上运行。事实上,如果您熟悉熊猫,在CSV中阅读的代码几乎完全相同:
import dask.dataframe as dd # Load the data with Dask instead of Pandas. df = dd.read_csv() |
一行代码,你现在读取的数据比你电脑的内存还大。我会在Excel中教你怎么做,但这是不可能的。
如果这段代码看起来有点异国情调,那么看看这门课程,它教给你一切你需要知道的东西,让你开始学习Pandas。
此外,Python还可以在涉及多个数据源时进行扩展。虽然Excel是数据存储和计算引擎,但Python完全不依赖于数据。如果您能找到一种方法将数据读入Python,那么您就可以使用它。而且由于Python有很多很棒的库,所以从CSV、Excel、JSON和SQL数据库等许多源读入数据是很容易的。
最后,在自动化方面,Python是一种了不起的编程语言。由于可以将Python直接连接到任何数据源,因此很容易安排一个作业,该作业将使用任何更新重新提取数据,运行计算,甚至创建一个报表或动态仪表板,从而节省大量时间。另一方面,Excel需要太多的人工,无法自动更新。
Python可以直接连接到数据库进行自动更新。来源:NobleDesktop
再现性
可再现性是这样一个概念,即你所创建的任何分析或可视化都应该容易、直接地为其他人再现。不仅需要有人能够重新运行您的流程并最终得到相同的结果,而且他们还应该能够遍历您的步骤以确保准确性。当您开始依赖自动化时,这个概念非常重要。当工作正常时,自动化是惊人的,但当工作不正确时,自动化报告可能是一场噩梦。
Excel的再现性非常具有挑战性。单元格中的Excel计算几乎不可能以任何比例进行检查。数据类型非常混乱,因为您看到的并不总是原始数据中表示的内容,虽然VBA使再现性稍好一些,但在这一点上,您最好投资于学习Python。
查看此Excel文档:
你知道sum列应该是a和b的和,但是你如何确认呢?你可以检查其中一个公式,看看它实际上是和,但既然每个单元格都可以是自己的公式,如果它们都不正确怎么办?如果你不注意的话,你可能会错过x行是错误的。
但在Python中,您的总和如下所示:
a = [1,2,3,4] b = [5,6,7,8] sum = [] for i in range(a): sum.append(a[i] + b[i]) |
此代码清晰易懂,便于确认总和始终计算正确。
使用Python,您可以开发所有工具,使软件工程师能够更好地进行再现性和协作。除此之外,Python在数据连接性方面更为出色,它允许我们分析云中的数据并立即重复一个过程。Git、单元测试、文档和代码格式化标准在Python社区中都很流行。使用Python 3,您甚至可以添加静态类型以使代码更加清晰。所有这些工具都使确保代码编写良好和正确变得更加容易。这样,下次您查看代码或其他人获取代码时,就很容易重新生成和理解。
可转移的技能
如果你知道Excel,你就知道Excel。虽然你所学的技能是有用的,但它们不能转移到任何其他方面。我最喜欢Python的一点是,它不仅是一个用于数据分析和可视化的令人惊叹的工具,而且是一种可以用于许多其他事情的可靠编程语言。
想做机器学习甚至深度学习吗?你可以用Python来实现。想建立一个网站吗?Python可以做到这一点。想让你的智能家居自动化吗?Python也可以做到这一点。
此外,Python比Excel更接近其他编程语言。这使得学习其他语言变得更加容易。学习Python比Excel打开了更多的大门。
最后,对Python的需求非常高。根据StackOverflow的数据,在2019年,它在专业软件开发人员中被列为世界第四流行的编程语言,同时也是第一最受欢迎的编程语言。事实上,美国Python开发者2020年的平均年薪是12万美元。不错。
高级功能
Excel有很多内置公式,但与Python的功能相比,它相形见绌。Python不仅提供数百个库来简化高级统计和分析,而且还可以将可视化提升到另一个级别。使用Matplotlib、Plotly、Streamlit和Seaborn等工具,您可以创建漂亮的数据可视化效果以及交互式仪表板和绘图。
Numpy和scipy对科学计算、线性代数和矢量计算有着惊人的支持。Scikit-Learn允许您将机器学习算法从决策树训练到梯度增强机器。我想xkcd说得最好:
Python很容易学习
鉴于Python比Excel有着惊人的优势,它一定很难学习,对吧?不!查看Java版本的Hello World,最简单的程序:
class HelloWorld { public static void main( String args[] ) { System.out.println( "Hello World!" ); } } |
Python实际上是一行:print(“Hello World!”). 再简单不过了。Python是最容易掌握的编程语言之一,并且拥有最活跃的社区之一,特别是在数据分析领域。Python是目前最直观的编程语言之一,对于一个没有多少计算机科学背景的人来说,它甚至是可以理解的!虽然学习曲线的表现似乎更好,但另一方面的回报却少得多。Python的学习曲线值得花费时间和精力,因为它的设计是一刀切的,Excel永远不会匹配。
Python很容易使用,而且有一个庞大的支持社区,学习起来从来都不容易。
为了向您展示Python是多么简单,在下一节中,我将向您介绍Python中数据分析和可视化的一些基础。
开始使用Python进行数据分析
为了让您开始,我想带您了解一些基本的Python命令和操作,它们对您的数据分析技能至关重要。让我们从基础开始。
首先,您会注意到Python使用了空白,并且不像其他语言那样使用分号。下面是一个非常简单的例子:
x = 5 y = 10 print(x+y) |
导入功能
我们将使用许多库,有些是用Python预先安装的,有些是我们自己安装的。要获取库,请使用import语句:
from collections import Counter |
此命令从集合库中导入类计数器。计数器对于数据科学家来说是一个非常有用的工具;它可以计算项目在列表等集合中出现的次数。例如,在下面的代码中,我们将创建一个结婚年龄列表。使用计数器,我们可以快速计算每个独特年龄出现的次数。
Python中的列表
列表是存储数据的有用数据结构。在下一课中将对它们进行更详细的学习。例如:
from collections import Counter marriage_ages = [22, 22, 25, 25, 30, 24, 26, 24, 35] value_counts = Counter(marriage_ages) print(value_counts.most_common()) |
您可以看到,我们使用第2行的 [] 创建了一个包含结婚年龄的列表。然后,我们将这个列表输入第4行的Counter函数,在第5行将最常见的值作为元组列表打印出来。
元组是()中的集合。这些元组包含两个元素:值和该值出现在列表中的次数。频率对元组列表进行排序。出现次数最多的值首先出现。
Python中的函数
函数也很有用。Python中的函数以关键字def和函数名开头,后面跟着函数期望的括号内的输入。下面是一个函数,它接受两个输入x和y,并返回和sum:
def add_two_numbers(x, y): # function header """ Takes in two numbers and returns the sum parameters x : str first number y : str second number returns x+y """ z = x + y return z # function return print(add_two_numbers(100,5)) # function call |
函数也可以是匿名的,这意味着您不必使用上述结构声明它们。相反,您可以使用lambda关键字。下面是与上面相同的函数,但作为匿名函数:
y = lambda x, y: x + y print(y(100,5)) # call the function |
总结
是时候切换到Python了。别再找借口了!我希望这篇文章能帮助你看到学习Python的好处,并打破一些学习障碍。
ArkAI学院 (www.arkai.net) 用Python把你的技能提升到一个新的水平!
![9d9e62743398080d3fe1f1aaf9c0c6d9.gif](https://i-blog.csdnimg.cn/blog_migrate/402c07fdf7efb84a259a8e9960b4df57.gif)
点击上方「蓝字」关注我们
![f2f7e0003030c24e01177a83028c6f75.png](https://i-blog.csdnimg.cn/blog_migrate/48d2d550a7de04cbe26472958bd00e4c.png)