使用Python更快速地处理Excel

Excel在当今商业中的使用非常普遍。在Dataquest,出于很多原因,我们通常推荐使用代码处理数据,并且我们的许多数据科学课程的目标是教授数据分析和数据科学的高效编码。但是,无论您多么喜欢使用Python,在一天结束时,有时您还是需要使用Excel来展示您的发现或共享您的数据。

但这并不意味着我们就不能继续享受Python的一些效率了!实际上,使用一个名为xlwings的库,您可以使用Python使Excel运行得更快。

在这个xlwings教程中,我们将介绍如何在Excel中使用Python来执行和使用一些常见的操作,比如根据特定的条件删除行、使用Excel函数和公式、自动填充、创建表单、图表等。为了跟随这篇文章,你应该熟悉基本的Python概念(对象、方法、属性、函数)和Python的语法,并对Excel和VBA有一定的了解。

很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。

很多已经做案例的人,却不知道如何去学习更加高深的知识。

那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!

QQ群:127341871

我们将使用一个数据集,其中包含有关欧洲彩票抽奖的信息,称为EuroMillions。这个数据集是从这个链接下载的,它包含了截止到9月20日的所有EuroMillions彩票信息。当你阅读这篇文章的时候,这个链接上的数据应该会被更新为最新的信息,但是以防它是不可用的,这里是一个CSV文件,其中包含了来自该链接的9月20日的数据。

Euromillions是一种跨国彩票,在一些欧洲国家有售,特别是在安道尔、奥地利、比利时、法国(包括海外地区和集体)、爱尔兰、马恩岛、列支敦士登、卢森堡、摩纳哥、葡萄牙、西班牙、瑞士和英国(来源)。

在写这篇文章的时候,抽奖由从50个数字(从1到50)池中抽出的5个数字和从12个数字池中抽出的两个称为幸运之星的数字组成。为了赢得头奖,参加者必须正确选择所有抽奖号码和幸运之星。史上最大的头等奖是1.9亿欧元。(请注意,我们的数据集是以英镑而不是欧元来计算奖金的)。

在本教程中,我们将使用Python和xlwings来与Excel一起清理一个数据集,然后生成一些图形来可视化哪些数字最常赢得EuroMillions。

第一列是抽奖号码,第N1-L2列是已经抽到的号码和幸运星(按抽奖顺序排列),Jackpot列是欧元的头奖,Wins列告诉我们有多少下注中了头奖。

遇见 xlwings

xlwings是一个Python库,它使Python的一些数据分析特性可以在Excel实例中使用,包括对numpy数组、pandas Series和DataFrame的支持。与其他任何Python库一样,我们可以使用pip或conda等常用方法来安装它,但是如果您需要更多详细信息,您可以在这里访问xlwings的文档。(地址:https://docs.xlwings.org/en/stable/installation.html  )

请注意,您需要在使用本xlwings教程的计算机上安装一个Microsoft Excel版本。

xlwings 对象

在xlwings中,有四种主要的对象类型,按递减的层次顺序排列:App(代表一个Excel实例)、Book、Sheet和Range。除了这些之外,我们还将处理Chart和Shape对象。您可以在官方文档中找到关于这些对象和其他对象的有用信息,但是我们将一次查看一个对象。

我们首先创建一个Book实例并将其命名为wb(工作簿)。

当您运行该代码时,它应该是这样的。

注意,当代码单元在Jupyter Notebook中运行时,Excel将自动启动。

通过实例化一个Book对象,一个属于我们的Book对象的App对象会被自动创建。下面是检查所有打开的Excel实例的方法。

注意:我们不打算在本教程中包含每个步骤的gif图片,因为我们不希望这个页面对于互联网连接缓慢或受限的人来说是一个麻烦的加载过程。但是,后续的代码运行步骤应该与我们上面所看到的类似:当我们在Juypter中运行一个单元格时,Excel电子表格将根据我们所运行的代码进行更新。

xw.apps对象是一个可迭代对象。要检查哪些工作簿属于这个可迭代对象的唯一实例,我们可以像这样对它调用books方法。

正如预期的那样,这个可迭代对象的惟一实例是工作簿wb。我们在下面来检查这个事实。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值