在Excel或Python如何执行大数据分析任务文章中,我们将通过研究如何在两个平台上执行基本分析任务来比较Excel和Python。
Excel是世界上最常用的数据分析软件。为什么?一旦掌握了它,就很容易掌握并具有强大的功能。相比之下,Python的声誉在于它更难使用,尽管一旦您了解到它几乎是无限的,就可以使用它。
但是,这两个数据分析工具实际上如何比较?他们的声誉并不能真正反映现实。在本教程中,我们将研究一些常见的数据分析任务,以演示Python数据分析的可访问性。
本教程假定您具有Excel的中级知识,包括使用公式和数据透视表。
我们将使用Python库pandas,该旨在帮助Python中的数据分析,但是本教程不需要任何Python或pandas知识。
为什么要使用Python vs Excel?
在开始之前,您可能想知道为什么Python甚至值得考虑。您为什么不能只继续使用Excel?
尽管Excel很棒,但是在某些领域中,某些类型的数据分析可以使像Python这样的编程语言更好。这是来自我们的帖子的一些原因:Excel用户应考虑学习编程的9个理由:
a.您几乎可以读取和处理任何类型的数据。
b.自动化和重复性的任务更加容易。
c.处理大型数据集非常重要更快,更容易。
d.其他人可以更轻松地复制和审核您的工作。
e.查找和修复错误更容易。
f.Python是开放源代码,因此您可以查看所使用的库背后的内容。
g.先进的统计和机器学习功能。
h.先进的数据可视化功能。
i.跨平台稳定性-您的分析可以在任何计算机上运行。
需要明确的是,我们不主张将Excel抛在后面-这是一个功能强大的工具,用途广泛!但是,作为Excel用户,也可以利用Python的功能可以节省您的时间,并开拓职业发展机会。
值得记住的是,这两个工具可以协同工作,并且您可能会发现某些任务最好留在Excel中,而另一些则可以从Python提供的功能,灵活性和透明性中受益。
导入我们的数据
首先,让我们熟悉本教程要使用的数据。我们将使用有关销售人员的虚构数据。这是我们的数据在Excel中的样子:
我们的数据保存为名为的CSV文件sales.csv。为了将数据导入熊猫,我们需要先导入熊猫库本身。
上面的代码导入pandas并将其作为语法的别名pd。这听上去很复杂,但这实际上只是一种昵称-这意味着在将来我们可以pd用来指代pandas这样我们就不必每次都键入完整的单词。
要阅读我们的文件,我们使用pd.read_csv():
我们将结果分配给了pd.read_csv()一个名为的变量sales,该变量将用于引用我们的数据。我们还在代码的最后一行中单独放置了变量名,该变量名将数据打印在格式良好的表中。
立即,我们可以注意到熊猫表示数据与在Excel中看到的数据之间存在一些差异:
a.在熊猫中,行号从0到1在Excel中开始。
b.大熊猫中的列名称取自数据,而Excel中的列使用字母标记。
c.在原始数据中缺少值的地方,pandas具有占位符NaN,指示该值丢失,或者为null。
d.销售数据的每个值都有一个小数点,因为熊猫存储的数值包含null(NaN)作为称为float的数值类型(这对我们没有任何影响,但我们只想解释为什么)。
在学习第一个熊猫操作之前,我们将快速学习一些有关如何存储数据的知识。
让我们使用type()函数查看sales变量的类型:
此输出告诉我们sales变量是一个DataFrame对象,这是熊猫中特定类型的对象。在熊猫中,大多数时候我们想要修改数据框时,都会使用一种称为数据框方法的特殊语法,该语法使我们能够访问与数据框对象相关的特定功能。当我们在熊猫中完成第一个任务时,我们将看到一个例子!
排序数据
让我们学习如何在Excel和Python中对数据进行排序。目前,我们的数据尚未排序。在Excel中,如果我们想按"Start Date"列对数据进行排序,我们将:
选择我们的数据。
单击工具栏上的“排序”按钮。
在打开的对话框中选择“开始日期”。
在大熊猫中,我们使用该DataFrame.sort_values()方法。刚才我们简要提到了方法。为了使用它们,我们必须替换DataFrame为我们要对该方法应用的数据框的名称-在这种情况下sales。如果您使用过Python中的列表,那么您会熟悉该list.append()方法中的这种模式。
我们为方法提供列名,以告诉该列按其排序:
我们数据框中的值已经用一行简单的熊猫代码进行了排序!
总结销售价值
我们数据的最后三列包含一年前三个月(称为第一季度)的销售价值。我们的下一个任务是将Excel和Python中的这些值相加。
让我们开始看看如何在Excel中实现此目标:
a."Sales Q1"在单元格中输入新的列名H1。
b.在单元格H2中,使用 SUM()公式并使用其坐标指定单元格的范围。
c.将公式向下拖动到所有行。
在熊猫中,当我们执行操作时,它将自动自动将其应用于每一行。我们将通过在列表中使用它们的名称来选择三列:
接下来,我们将使用DataFrame.sum()方法并指定axis=1,它告诉熊猫我们要对行求和而不是对列求和。我们将通过在方括号内提供新的列名称来指定它:
在熊猫中,我们使用的“公式”不会存储。而是将结果值直接添加到我们的数据框中。如果我们想对新列中的值进行调整,则需要编写新代码来完成。
加入经理数据
在我们的电子表格中,我们还有一小段数据表,说明谁管理每个团队:
让我们看看如何"Manager"在Excel和Python 的列中将这些数据联接起来。在Excel中,我们:
a.首先将列名称添加到cell中I1。
b.使用VLOOKUP()cell中的公式I2,指定:
从单元格B2(部门) 查找值
在选择经理数据时,我们使用坐标指定
并且我们想要从该数据的第二列中选择值。
c.单击并将公式向下拖动到所有单元格。
要在熊猫中使用此数据,首先,我们需要从第二个CSV导入它managers.csv:
为了将maangers数据连接到sales使用熊猫,我们将使用pandas.merge()函数。我们按顺序提供以下参数:
a.sales:我们要合并的第一个或左侧数据框的名称
b.managers:我们要合并的第二个或正确数据框的名称
c.how='left':我们要用于联接数据的方法。在left加入指定,无论什么时候,我们希望将所有的行从我们的左(第一)数据帧。
d.on='Department':我们将要加入的两个数据框中的列名。
如果乍一看这有点令人困惑,那就可以了。在Python中用于联接数据的模型与Excel中所使用的模型不同,但它的功能也强大得多。请注意,在Python中,我们可以精确地指定使用清晰的语法和列名如何连接数据。
添加条件列
如果我们看一下 "End Date"专栏,我们可以看到并非所有员工仍在公司工作-缺少价值的员工仍然受雇,而其余员工则离开了。我们的下一个任务是创建一个列,该列告诉我们每个销售人员是否是当前员工。我们将在Excel和Python中执行此操作。
从Excel开始,要添加此列,我们:
a.向cell添加一个新的列名J1。
b.使用IF()公式来检查电池D1(终止日期)为空,如果是填充J2用TRUE,否则FALSE。
c.将公式向下拖动到下面的单元格。
在熊猫中,我们使用该pandas.isnull()函数检查"End Date"列中的空值,并将结果分配给新列:
数据透视表
枢纽分析表是Excel最强大的功能之一,它可以方便地使用聚合进行数据分析。我们将研究Excel和Python中的两个不同的数据透视表应用程序。
我们将从Excel中的数据透视表开始,该数据表计算每个部门的员工人数:
这种操作(计算值在列中出现的次数)非常普遍,以至于它在熊猫中有自己的语法:Series.value_counts()。
系列类型是本教程的新增内容,但与我们已经了解的DataFrame非常相似。系列只是单个行或列的熊猫表示。
让我们使用pandas方法来计算每个部门的员工人数:
第二个数据透视表示例也按部门进行汇总,而是计算第一季度的平均销售额:
为了以大熊猫计算,我们将使用DataFrame.pivot_table()方法。我们需要指定一些参数:
a.index:汇总依据的列。
b.values:我们要使用其值的列。
c.aggfunc:我们要使用的聚合函数,在这种情况下为'mean'平均值。
Excel vs Python:摘要
在本教程中,我们学习了以下Excel功能的Python等效项:
a.排序数据
b.SUM()
c.VLOOKUP()
d.IF()
e.数据透视表
对于我们研究的每个示例,pandas语法的复杂度与您在Excel中使用的公式或菜单选项的复杂度相似。但是Python具有一些优点,例如更快地处理大型数据集,更多的自定义和复杂性,以及提高错误检查和审计的透明度(因为您所做的一切都明确地放置在代码中,而不是隐藏在单元中)。
精通Excel的人不仅仅具有跨越Python的能力。从长远来看,将Python技能添加到您的技能中将使您成为一个更快,更强大的分析师,并且您将发现可以利用Excel和Python进行工作的新工作流程,比单独使用Excel可以进行更高效,更强大的数据分析。
如果您想学习如何在Python中分析数据,我们的Python 数据分析器路径旨在教您所有需要了解的内容,即使您以前从未编写过代码。在开始学习我们在本教程中使用过的pandas库之前,您将从两门课程开始,它们将教您Python的基础知识。
填写下面表单即可预约申请免费试听!怕钱不够?可先就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可推荐就业!
©2007-2022/ www.aaa-cg.com.cn 北京漫动者数字科技有限公司 备案号: 京ICP备12034770号 监督电话:010-53672995 邮箱:bjaaa@aaaedu.cc