范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

如何利用Python编程批量处理Excel,来提高日常工作效率?

  思路与选择更重要
  我看过许多人一看到别人提问"python处理excel"之类的话题,立马就说出一大堆的库,结果很多初学者苦苦地编写Python代码处理数据,最后他们都会感觉太坑爹了。
  如果我在这里列出各种处理方法,那么成千上百的字数都不够看。我觉得你更应该了解思路与工具的选择,不然方向错了,你就算拿着再好用的工具也发挥不了作用。
  Python 与 Excel 的交互
  Python中有许多库可以与Excel交互,比如 xlrd、xlwings等等,但是我要强调的是,这些库仅仅让你方便地与Excel打交道,比如,读写数据、设置格式。
  如果你的日常任务仅仅是简单设置格式,不需要对数据做复杂的计算和处理,那么这些库已经可以满足你的需求
  数据处理才是核心
  很多人已经会一些编程语言(比如 vba),转到python上处理excel,结果是把vba代码用python代码写一遍。诸如求平均、求和等各种从简单到复杂的处理,都依靠自己编写各种循环遍历,最后只能从入门到放弃。
  上述原因主要是他们只关注如何与excel交互,而忽视了数据处理才是整个问题的关键点。而在python中数据处理的最重要的库pandas,就是你唯一的选择。
  选择
  因此你需要先评估你的日常处理任务,是否有非常多的处理环节是从excel开始的。
  比如,你的数据是直接从数据库中处理获取,你只需要编写代码把数据输出到excel,那么这显然不需要使用pandas(实际上使用pandas很可能比使用其他库来得简单)
  如果你需要使用python做各种处理,然后输出excel,那么你必须要学习pandas,不然你只是在低效率处理数据
  为什么要用pandas?
  pandas的一个最大的优势在于,大多时候你只需要告诉他做什么,就可以完成工作,而不需要你亲自编写如何遍历数据的代码。许多非常复杂的处理要求,使用pandas解决是轻而易举,并且有非常好的扩展性。
  我不想列出代码去占用篇幅了。如果你有兴趣,可以参考我头条号的文章,你会发现这些文章中的python解决方案,完全没有自己遍历数据的写法。以下是其中的一些文章:
  [Excel数据处理你是选择Vba还是Python?当然选择pandas](https://www.toutiao.com/i6713810410480337419/)
  4篇"Python替代Excel Vba"系列文章
  若干篇利用pandas做数据分析的案例文章
  最后我还是要提醒你,一定要根据自己的情况选择适当的工具,这些都是辅助你工作的工具,不要被工具限制了你的思路
  Python批量处理Excel的话,有许多现成的库可以直接使用,下面我简单介绍一下,感兴趣的朋友可以尝试一下:01xlrd、xlwt
  这是Python 2个非常基础的Excel 读写库,其中xlrd专门用于读取Excel,xlwt专门用于写入Excel,支持常见的行列、单元格操作,安装的话,直接在cmd窗口输入命令"pip intsall xlrd xlwt"即可,官方自带有非常详细的入门教程文档和API接口,非常适合开发者学习:
  这里以简单的读取Excel为,测试代码如下,基本思想先打开Excel,获取工作表,然后根据所需直接读取对应行列和单元格内容即可,非常简单:
  02openpyxl
  这是一个专门用于读取Excel的Python库,目前仅支持Excel 2010格式(xls不支持),操作单元格、行列,设置样式、插入图片等非常容易,安装的话,直接在cmd窗口输入命令"pip install openpyxl"即可,官方文档含有非常详细的代码示例和截图,非常适合初学者入门和学习:
  测试代码如下,非常简单,以写入Excel为例,基本思想先创建一个Excel文件,然后获取工作表,最后再往对应单元格写入内容即可:
  03pandas
  这是Python一个非常著名的数据处理库,在业界非常流行和受欢迎,内置了大量函数和数据类型,可以轻松处理Excel文件,并进行复杂的数据处理,代码量更少,功能也更强大,安装的话,直接在cmd窗口输入命令"pip install pandas"即可,官方自带有非常详细的入门教程,源码都可直接运行,非常适合开发者学习和使用:
  这里以读写Excel为例,测试代码如下,非常简单,一行代码就可轻松获取或写入数据,功能非常强大,推荐使用:
  目前,就介绍这3个非常不错的Python Excel处理库吧,对于日常办公 和 工作来说,非常不错,只要你有一定Python基础,熟悉一下相关文档和示例,很快就能掌握的,网上也有相关教程和资料,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。
  1.读入操作
  def load_data():
  filename = u"投资企业.xls"
  data = xlrd.open_workbook(filename)
  table = data.sheet_by_name(u"Sheet1")
  # 选择第4列(从第2行到最后一行)
  name_list = table.col_values(3)[1:]
  # 返回list
  return name_list
  2.写入已存在excel
  import xlrd
  import xlwt
  from xlutils.copy import copy
  # 打开想要更改的excel文件
  old_excel = xlrd.open_workbook("fileName.xls", formatting_info=True)
  # 将操作文件对象拷贝,变成可写的workbook对象
  new_excel = copy(old_excel)
  # 获得第一个sheet的对象
  ws = new_excel.get_sheet(0)
  # 写入数据
  ws.write(0, 0, "第一行,第一列")
  ws.write(0, 1, "第一行,第二列")
  ws.write(0, 2, "第一行,第三列")
  ws.write(1, 0, "第二行,第一列")
  ws.write(1, 1, "第二行,第二列")
  ws.write(1, 2, "第二行,第三列")
  # 另存为excel文件,并将文件命名
  new_excel.save("new_fileName.xls")
  结语:我建议试试vba编程?
  在有关大数据分析Python API的本教程中,我们将学习如何从远程网站检索数据以进行数据科学项目。像baidu,Twitter和Facebook之类的网站都通过其应用程序编程接口(API)向程序员提供某些数据。要使用API,你需要向远程Web服务器发出请求,然后检索所需的数据。
  但是,为什么要使用API而不是可以下载的静态数据集呢?API在以下情况下很有用:
  a.数据变化很快。股票价格数据就是一个例子。重新生成数据集并每分钟下载一次并没有实际意义-这会占用大量带宽,而且速度很慢。
  b.您需要一小部分更大的数据。Reddit评论就是一个例子。如果您只想在Reddit上发表自己的评论该怎么办?下载整个Reddit数据库,然后仅过滤您自己的注释并没有多大意义。
  c.涉及重复计算。Spotify的API可以告诉您音乐的流派。从理论上讲,您可以创建自己的分类器,并使用它对音乐进行分类,但您将永远不会拥有Spotify所拥有的数据。
  在上述情况下,API是正确的解决方案。对于本数据科学教程,我们将查询一个简单的API,以检索有关国际空间站(ISS)的数据。使用API可以节省我们自己进行所有计算的时间和精力。
  大数据分析Python中的API请求
  API托管在Web服务器上。当您www.google.com在浏览器的地址栏中键入内容时,您的计算机实际上是在向www.google.com服务器询问网页,然后该网页返回到您的浏览器。
  API的工作方式几乎相同,除了您的程序要求数据而不是您的Web浏览器询问网页之外。这些数据通常以JSON格式返回(有关更多信息,请参阅有关使用JSON数据的教程)。
  为了获取数据,我们向Web服务器发出请求。然后,服务器将回复我们的数据。在大数据分析Python中,我们将使用请求库来执行此操作。在此大数据分析Python API教程中,我们将为所有示例使用大数据分析Python 3.4。
  请求类型
  有许多不同类型的请求。最常用的一个GET请求用于检索数据。
  我们可以使用一个简单的GET请求从OpenNotify API 检索信息。
  OpenNotify具有多个API端点。端点是用于从API检索不同数据的服务器路由。例如,/commentsReddit API上的端点可能会检索有关注释的信息,而/users端点可能会检索有关用户的数据。要访问它们,您可以将端点添加到API 的基本URL中。
  我们将在OpenNotify上看到的第一个端点是iss-now.json端点。该端点获取国际空间站的当前纬度和经度。如您所见,检索此数据不适用于数据集,因为它涉及服务器上的一些计算,并且变化很快。
  您可以在此处查看OpenNotify上所有端点的列表。
  OpenNotify API 的基本网址是http://api.open-notify.org,因此我们将其添加到所有端点的开头。
  状态码
  我们刚刚发出的请求的状态码为200。向Web服务器发出的每个请求都返回状态代码。状态代码指示有关请求发生的情况的信息。以下是与GET请求相关的一些代码:
  a)200 -一切正常,结果已返回(如果有)
  b)301—服务器正在将您重定向到其他端点。当公司切换域名或更改端点名称时,可能会发生这种情况。
  c)401-服务器认为您未通过身份验证。当您没有发送正确的凭据来访问API时就会发生这种情况(我们将在以后的文章中讨论身份验证)。
  d)400-服务器认为您提出了错误的请求。当您没有正确发送数据时,可能会发生这种情况。
  e)403 —您尝试访问的资源被禁止—您没有正确的权限查看它。
  f)404 -在服务器上找不到您尝试访问的资源。
  现在http://api.open-notify.org/iss-pass,根据API文档,向不存在的端点发出GET请求。
  击中正确的终点
  iss-pass不是有效的端点,因此我们得到了一个404状态码作为相应。.json正如API文档所述,我们忘记在最后添加。
  现在,我们将向发出GET请求http://api.open-notify.org/iss-pass.json。
  查询参数
  您将在上一个示例中看到,我们得到了一个400状态码,表示请求错误。如果您查看OpenNotify API的文档,我们会发现ISS Pass端点需要两个参数。
  当ISS下次通过地球上的给定位置时,将返回ISS Pass端点。为了对此进行计算,我们需要将位置的坐标传递给API。为此,我们传递了两个参数-纬度和经度。
  为此,我们可以在params请求中添加可选的关键字参数。在这种情况下,我们需要传递两个参数:
  1)lat —我们想要的位置的纬度。
  2)lon —我们想要的位置的经度。
  我们可以使用这些参数制作字典,然后将它们传递给requests.get函数。
  我们还可以通过将查询参数添加到url中来直接做同样的事情,如下所示:http://api.open-notify.org/iss-pass.json?lat=40.71&lon=-74。
  将参数设置为字典几乎总是可取的,因为requests它可以处理一些事情,例如正确设置查询参数的格式。
  我们将使用纽约市的坐标进行请求,然后查看得到的答复。
  b"{n "message": "success", n "request": {n "altitude": 100, n "datetime": 1441417753, n "latitude": 40.71, n "longitude": -74.0, n "passes": 5n }, n "response": [n {n "duration": 330, n "risetime": 1441445639n }, n {n "duration": 629, n "risetime": 1441451226n }, n {n "duration": 606, n "risetime": 1441457027n }, n {n "duration": 542, n "risetime": 1441462894n }, n {n "duration": 565, n "risetime": 1441468731n }n ]n}"
  b"{n "message": "success", n "request": {n "altitude": 100, n "datetime": 1441417753, n "latitude": 40.71, n "longitude": -74.0, n "passes": 5n }, n "response": [n {n "duration": 329, n "risetime": 1441445639n }, n {n "duration": 629, n "risetime": 1441451226n }, n {n "duration": 606, n "risetime": 1441457027n }, n {n "duration": 542, n "risetime": 1441462894n }, n {n "duration": 565, n "risetime": 1441468731n }n ]n}"
  使用JSON数据
  您可能已经注意到,响应的内容之前是a string(尽管它显示为bytes对象,但是我们可以使用轻松地将内容转换为字符串response.content.decode("utf-8"))。
  字符串是我们将信息来回传递给API的方式,但是很难从字符串中获取我们想要的信息。我们如何知道如何解码返回的字符串并在大数据分析Python中使用它?我们如何altitude从字符串响应中找出ISS的含义?
  幸运的是,有一种名为JavaScript Object Notation(JSON)的格式。JSON是一种将列表和字典之类的数据结构编码为字符串的方法,以确保它们易于被机器读取。JSON是将数据来回传递给API的主要格式,大多数API服务器将以JSON格式发送其响应。
  json套件随附大数据分析Python强大的JSON支持。该json软件包是标准库的一部分,因此我们无需安装任何程序即可使用它。我们既可以将列表和字典转换为JSON,也可以将字符串转换为列表和字典。就我们的ISS Pass数据而言,它是一个字典,编码为JSON格式的字符串。
  json库有两种主要方法:
  1)dumps —接收一个大数据分析Python对象,并将其转换为字符串。
  2)loads —接收JSON字符串,并将其转换为大数据分析Python对象。
  从API请求获取JSON
  通过使用.json()响应上的方法,您可以将响应的内容作为大数据分析Python对象获取。
  {"response": [{"risetime": 1441456672, "duration": 369}, {"risetime": 1441462284, "duration": 626}, {"risetime": 1441468104, "duration": 581}, {"risetime": 1441474000, "duration": 482}, {"risetime": 1441479853, "duration": 509}], "message": "success", "request": {"latitude": 37.78, "passes": 5, "longitude": -122.41, "altitude": 100, "datetime": 1441417753}}
  内容类型
  服务器不仅会在生成响应时发送状态码和数据。它还发送包含有关如何生成数据以及如何对其进行解码的信息的元数据。这存储在响应头中。在大数据分析Python中,我们可以使用headers响应对象的属性来访问它。
  标头将显示为字典。在标题中,content-type是目前最重要的键。它告诉我们响应的格式以及如何对其进行解码。大数据分析Python API入门教程https://www.aaa-cg.com.cn/data/2308.html对于OpenNotify API,格式为JSON,这就是为什么我们可以json更早地使用包对其进行解码的原因。
  寻找太空中的人数
  OpenNotify还有一个API端点astros.json。它告诉你当前有多少人在太空中。相应的格式可以在这里找到。
  9
  {"number": 9, "people": [{"name": "Gennady Padalka", "craft": "ISS"}, {"name": "Mikhail Kornienko", "craft": "ISS"}, {"name": "Scott Kelly", "craft": "ISS"}, {"name": "Oleg Kononenko", "craft": "ISS"}, {"name": "Kimiya Yui", "craft": "ISS"}, {"name": "Kjell Lindgren", "craft": "ISS"}, {"name": "Sergey Volkov", "craft": "ISS"}, {"name": "Andreas Mogensen", "craft": "ISS"}, {"name": "Aidyn Aimbetov", "craft": "ISS"}], "message": "success"}   大数据分析Python API数据科学教程:后续步骤   现在,您已经完成了大数据分析Python API教程,现在应该可以访问简单的API并发出get请求了。requests在我们的dataquest API和抓取课程中,还有其他几种类型,您可以了解更多信息以及与API身份验证一起使用。   建议的其他后续步骤是阅读请求文档,并使用Reddit API。有一个名为PRAW 的程序包,它使在大数据分析Python中使用Reddit API更加容易,但是建议requests首先使用它来了解一切的工作原理。   https://www.toutiao.com/i6832146415016215043/

淘宝上有什么衣服比较好看的店铺?50块钱就能买到宋妍霏同款卫衣大概100就能买到Stussy和inxxstreet快时尚品牌基本一身到底不超过200的与众不同小众品牌。第1家中了原单的毒评分4。94。94。9价格手机掉了,怎样第一时间将支付宝,微信支付通道堵死?手机掉了,怎样第一时间将支付宝,微信支付通道堵死?现在绝大部分人手机里都有些自己的秘密。特别是微信或支付宝,自己辛辛苦苦攒下来的吊命钱可就依靠支付宝或微信给涨点儿利息或理点儿财,也武汉,南京,西安为什么那么多高校?这三座城市,高校云集,现在来说,都属于所在省份乃至于全国著名的高教城!但形成的原因却各不相同。先说南京,众所周知,它是民国时候的首都。而我们国家的大学教育,基本上是在清朝末年开始兴九岁的孩子三百度近视,除了少看电视外,该怎么样防止恶化?这又是一个让我心碎的问题。孩子才九岁,应该是刚刚二三年级吧。为什么会近视这么多呢?如果孩子已经确诊是真性近视的话,那么近视应该很难恢复,现在重点要做的是,如何防止度数进一步加深。从郑州有哪些名震天下的企业?首先看下郑州企业排名2016年8月27日,由中国企业联合会中国企业家协会发布的2016中国企业500强排行榜出炉,河南省有9户企业入围。中国企业500强榜单已经连续发布15年,被业在深圳月薪税前35K能过怎样的生活?不知道你公司里面五险一金如何计算,这里先不去管这些也就是一个月缴纳税款6870元,余下28130元是实发工资。说句实话,你这个月薪很不错了,你缴纳的个税,都比平均工资高了。如果按照我是宝妈,有什么工作推荐?不知道你对什么方面感兴趣,我觉得不要强调自己是宝妈吧。首先应该思考自己想干嘛,能干嘛,喜欢干嘛。我现在的积累方向是阅读推广人,这个是我怀老大的时候,去听儿童发展心理学的课,老师给建你见识过最诡异的事是什么?我亲自经历的最诡异的事,我丧偶,我的邻居一个北京老头也丧偶,我们不认识没有见过面,因为小区太大要摆渡车才能出门口的那种小区,他是在我们邻居群里和我打招呼的,我在那个小区开个客栈,他过年了,在家庭聚会中,遇到让孩子放肆吃糖看电视的亲戚,怎么沟通比较好?有哪些让孩子听话的好办法?把孩子藏起来,不让他跟亲戚接触,他就不会吃糖,看电视了。不是自己的孩子就不要操心了,不是自己的孩子,说多了,人家大人还不愿意如果糖是自己的,那就少放一些电视设置时间,时间到了给孩子父亲和母亲,哪个成绩好?会使孩子成绩更好?本人从教三十八年,教小学12年,初中26年,其中带初三毕业班25年,教人二三代。从我的长期观察来看,聪明有种,富贵有根这句话无疑是正确的。通常父母均聪明,子女聪明的概率大父母均不算孩子越来越叛逆,该怎么办?首先,孩子越大越叛逆,其实是家长的主观臆断,从另一个角度来看,其实是一件好事,这说明,孩子在成长,开始有了自己的想法和判断事物的准绳。这是值得庆幸的,家长应该从好的角度来看问题。另
年过三十穿衣如何高级得体?秋日穿搭示范,用基础款体现精致头条创作挑战赛对于女人来说,三十岁就是一个坎,如果再像二十几岁穿得那样嫩可能有点不合时宜了。那么,女人年过三十穿衣如何高级得体呢?今天就给大家分享一些实用的秋日穿搭示范,照着穿,用宁德时代匈牙利工厂项目启动华为发布AITO首款纯电车型问界M5EV,28。8万元起售36氪新能源日报0906作者韩哲熙编辑张麟36氪ToB产业组会为大家汇总每日新能源领域的主要新闻,9月6日新能源行业动态日报如下电池产业新动态宁德时代匈牙利工厂项目启动9月5日,中国动力电池制造商宁德时代记载着千秋的冰芯无言的气候记录者科幻网9月2日讯(刘亚珠)近日,科学家们在珠峰东绒布冰川海拔六千五百米钻取,得到了一百四十米的透底冰芯,记录的气候环境恢复时间约有两千年。(上两万年冰芯下三万年冰芯)钻取地球最深处美好的一天从戴上一块好表开始心理学家荣格有一个分析普通人的行为的模型行为动机能力提示。非常简单地概述了产生行为的背后有哪些底层逻辑。那么我们可以分析一下戴上一块手表这个行为,是否符合荣格模型?首先戴表的动机是宁德时代凭什么能够快速崛起?宁德时代是全球领先的新能源科技公司,动力电池使用量连续多年位居全球第一。依托中国庞大的制造体系,公司市值已达万亿,而且一直在稳步增长。该公司庞大的体量一直无人能及,因此也被网友封为云南古老的曼听公园,沉浸式体验傣族民俗文化,夜晚比白天还好玩在中国大地的西南边陲,生活着一群热情洋溢的少数民族,色彩艳丽的民族服饰,奔放多姿的民族舞蹈,都让我们眼前一亮,他们就是能歌善舞,性格开朗的傣族,主要生活在我国云南的西双版纳。西双版安徽一小众景点走红,堪称皖西三峡人家,成大别山风景道灵境山之南山花烂漫,山之北白雪皑皑,此山大别于他山也!作为江淮的分水岭,我国著名的革命老区,大别山可谓是家喻户晓。它地貌瑰奇,瀑潭遍布,峡谷纵横,林密境幽,是著名的世界地质公园,也是蜚在美丽的云南,看生机如此盎然!9月7日上午,云南这十年系列新闻发布会生物多样性保护专场发布会在海埂会堂召开,介绍相关情况并回答记者提问。赵嘉摄云南是我国生物多样性最丰富的省份,是我国重要的生物多样性宝库和西南生广东韶关有一座重要寺庙,是禅宗祖庭,还被誉为东粤第一宝刹这里是刘小顺的旅行和生活研究所。在广东省北部的韶关市,有这么一座非常重要的寺庙,被誉为东粤第一宝刹,也是很多游客来到韶关旅游都要参观游览的寺庙。广东韶关这座重要寺庙就是南华禅寺,位小葡萄串起乡村振兴大产业游客在中方县桐木镇大松坡村百年老藤葡萄树下打卡怀化新闻网讯(记者张鸿鹏潘雨通讯员李慧勤覃子峰)白墙黑瓦,波光粼粼,绿树成荫,花果飘香中方县桐木镇大松坡村,以优美的田园风光独特的休闲老北京的胡同真的能吃?还别说,看完不流口水算我输首先川大爷先做一下检讨,检讨什么呢,众所周知,川大爷平日里不是介绍吃的,就是介绍玩的,美食旅游比较在行,但是今天川大爷要说的,也不知道到底是吃的,还是玩的,反正川大空懵了,大家自行