Excel是一种极为常见的数据分析工具。学习它的方法很容易,几乎在每台计算机上都可以使用,并且熟练掌握它的人可以解决它的相当复杂的问题。Python通常被认为是一种功能几乎无限的工具,但比Excel难掌握。该材料的作者(我们今天将其翻译发表)想谈谈使用Python解决通常在Excel中完成的三个任务的解决方案。本文是对那些精通Excel的人的Python入门。
资料载入
首先,我们导入Python库pandas
并将数据加载到存储在Excel工作表sales
和states
工作簿中的数据框中。我们将为相应的数据框指定相同的名称。import pandas as pd
sales = pd.read_excel('https://github.com/datagy/mediumdata/raw/master/pythonexcel.xlsx', sheet_name = 'sales')
states = pd.read_excel('https://github.com/datagy/mediumdata/raw/master/pythonexcel.xlsx', sheet_name = 'states')
现在,我们将使用.head()
数据框方法在数据框sales
的开头显示元素:print(sales.head())
将显示的内容与您在Excel中看到的内容进行比较。将Excel中数据输出的外观与从pandas数据框中输出的数据的外观进行比较在这里您可以看到,可视化数据框中数据的结果与在Excel中看到的结果非常相似。但是有一些非常重要的区别:- Excel中的行编号从1开始,在熊猫中,第一行的编号(索引)为0。
- 在Excel中,列的字母以letter开头
A
,在pandas中,列的名称对应于相应变量的名称。
我们将继续研究熊猫的可能性,使我们能够解决通常在Excel中解决的问题。在Python中实现Excel Excel IF功能
Excel具有非常方便的功能IF
,例如,可以根据检查另一个单元格中的内容,将某些内容写入单元格。假设您要在Excel中创建一个新列,该列的单元格会告诉我们该列对应单元格中的值是否超过500 B
。在Excel中,E
您可以通过MoreThan500
将相应的文本写入单元格来为该列(在本例中为列)分配标题E1
。之后,在单元格中E2
,您可以输入以下内容:=IF([@Sales]>500, "Yes", "No")
在Excel中使用IF函数为了对熊猫做同样的事情,可以使用列表推导:sales['MoreThan500'] = ['Yes' if x > 500 else 'No' for x in sales['Sales']]
列出Python中的包含项:如果当前值大于500,则列表中包括是;否则,否列出项是解决此类问题的出色工具,它通过减少对if / else之类的复杂构造的需求来简化代码。if / else可以解决相同的问题,但是所提出的方法可以节省时间,并使代码更简洁。列表包含的详细信息可以在这里找到。在Python中实现VLOOKUP Excel功能
在我们的数据集中,在一张Excel工作表上,有城市名称,在另一张上,有州和省的名称。如何找出每个城市的确切位置? Excel函数适用于此功能VLOOKUP
,您可以使用该功能链接两个表的数据。当保存位于表达式左侧的数据集中的每个记录时,此函数将根据左连接的原理工作。使用函数VLOOKUP
,我们建议系统在指定工作表的给定列中搜索特定值,然后返回找到值右侧指定列数的值。看起来是这样的:=VLOOKUP([@City],states,2,false)
当我们使用函数在该列的单元格中填写城市所在州和省的名称时,我们
在工作表上设置sales
列标题。F
State
VLOOKUP
在Excel中使用VLOOKUP函数在Python中,可以使用merge
pandas中的方法执行相同的操作。它需要两个数据帧并将其合并。要解决此问题,我们需要以下代码:sales = pd.merge(sales, states, how='left', on='City')
让我们来分析一下:- 该方法的第一个参数
merge
是原始数据帧。 - 第二个参数是我们在其中寻找价值的数据框架。
- 该参数
how
确切指示我们要如何联接数据。 - 参数
on
指向执行连接所用的变量(如果在不同数据帧中我们感兴趣的数据以不同的名称命名,则此处仍可以使用参数left_on
和right_on
,这是必需的)。
汇总表
数据透视表是Excel最强大的功能之一。这些表使您可以快速从大型数据集中提取有价值的信息。创建一个Excel数据透视表,其中显示有关每个城市的总销售额的信息。在Excel中创建数据透视表如您所见,要创建这样的表,只需将字段拖到区域中City
,Rows
然后将字段Sales
拖到区域中Values
。之后,Excel将自动显示每个城市的总销售额。为了在pandas中创建相同的数据透视表,您需要编写以下代码:sales.pivot_table(index = 'City', values = 'Sales', aggfunc = 'sum')
让我们来分析一下:- 在这里,我们使用一种方法
sales.pivot_table
,告诉熊猫我们要基于数据框创建数据透视表sales
。 - 参数
index
指向要用来汇总数据的列。 - 该参数
values
指示我们将汇总哪些值。 - 该参数
aggfunc
指定我们要在值的处理使用(在这里你仍然可以使用函数的函数mean
,max
,min
等)。
摘要
通过此材料,您了解了如何将Excel数据导入熊猫,如何实现Excel函数IF
和Python工具熊猫的功能。VLOOKUP
,以及如何使用熊猫重现Excel数据透视表的功能。也许现在您在想,如果可以在Excel中进行操作,为什么还要使用熊猫呢?这个问题没有单一答案。 Python使您可以创建可以进行微调和深入研究的代码。这样的代码可以重复使用。 Python可以描述非常复杂的数据分析方案。 Excel功能可能仅足以用于较小规模的数据研究。如果到目前为止您只使用过Excel,建议您尝试使用Python和pandas并找出可以做什么。您使用什么工具来分析数据?, , iPhone. , .
