第一句子大全,网罗天下好句子,好文章尽在本站!

教你使用openpyxl库从Excel文件中提取指定的数据并生成新文件

时间:2020-08-08

她的目标就是想提取文件中A列单元格中数据为10的所有行,看到A列的表头是时间,10就代表着上午的10小时,也就是说她需要提取每一天中的上午10点钟的数据

友情提示:本文共有 1707 个字,阅读大概需要 4 分钟。

来源:Python爬虫与数据挖掘

作者:Python进阶者

前言

前几天有个叫【Lcc】的粉丝在Python交流群里问了一道关于从Excel文件中提取指定的数据并生成新的文件的问题,初步一看确实有点难,不过还是有思路的。她的目标就是想提取文件中A列单元格中数据为10的所有行,看到A列的表头是时间,10就代表着上午的10小时,也就是说她需要提取每一天中的上午10点钟的数据。这个数据在做研究的时候还是挺有用的,之后结合作图,就可以挖掘出部分潜在规律了,这个在此不做深究。

一、思路

这个问题看似简单,直接用Excel中的筛选就可以了。诚然,数据筛选,之后扩展行确实可以做到,针对一个或者两个或者10位数以下的Excel文件,我们尚且可以游刃有余,但是面对成百上千个这样的数据文件,怕就力不从心了,如果还是挨个进行处理,那就难受了,所以用Python来批量处理还是很奈斯的。下面一起来看看吧!

二、解决方法

# coding: utf-8from openpyxl import load_workbook, Workbook# 数据所在的文件夹目录path = "C:/Users/pdcfi/Desktop/xiaoluo"# 打开数据工作簿workbook = load_workbook(path + "/" + "巍图1.xlsx")# 打开工作表sheet = workbook.activebuy_mount = sheet["A"]row_lst = []for cell in buy_mount: if isinstance(cell.value, int) and cell.value == 10: print(cell.row) row_lst.append(cell.row)new_workbook = Workbook()new_sheet = new_workbook.active# 创建和原数据 一样的表头(第一行)header = sheet[1]header_lst = []for cell in header: header_lst.append(cell.value)new_sheet.append(header_lst)# 从旧表中根据行号提取符合条件的行,并遍历单元格获取值,以列表形式写入新表for row in row_lst: data_lst = [] for cell in sheet[row]: data_lst.append(cell.value) new_sheet.append(data_lst)# 最后切记保存new_workbook.save(path + "/" + "xiaoluo_符合筛选条件的新表.xlsx")

之后在本地查看结果,可以看到,符合条件的数据全部都被提取出来了。

2)注意

还记得上图中粉丝说自己提取到的数据为啥只有header,而没有数据么?其实这里有个坑,隐藏在她的原始数据中,请看下图。

A列的数据是从B列取的,是引用,所有等到访问的时候,其实是获取不到的,所有导致我们去读取的时候,查找的cell为空,自然我们就无法提取到数据。

针对这样的情况,这里给出两个方案,其一是将A列,复制粘贴,粘贴类型为"值",然后重新保存excel进行读取就可以搞定了;其二是以B列作为索引,进行时间取值,然后创建新的一列,之后再做提取,实现难度稍微大一些,取时间的代码可以参考。

df_raw["时间"] = pd.to_datetime(df_raw["时间"], format="%Y-%m-%d").hour

本文用的是第一种方法,其实第二种方法显得更加智能一些,难度稍微大一些,实现方法大家可以踊跃的尝试下。

三、总结

我是Python进阶者。本文基于粉丝提问如何从Excel文件中提取指定的数据并生成新的文件的问题,给出了两种解决方案。

针对这个问题,小编这里整理了两个思路,当然方法肯定远远不只是这两种,如果你有其他的方法,可以随时分享给我噢!

小伙伴们,快快用实践一下吧!

本文如果对你有帮助,请点赞收藏《教你使用openpyxl库从Excel文件中提取指定的数据并生成新文件》,同时在此感谢原作者。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
相关阅读
Excel中去掉文本数据中多余的空格 这两个函数很有用!

Excel中去掉文本数据中多余的空格 这两个函数很有用!

在Excel中,多余的空格会给我们的数据造成很大的麻烦,更令人心烦的时,我们并不一定能看到这些问题。不过,Excel可以。如下图所示的数据表格中,标黄的两个单元格中的“CTX”这一文本数据中没有多余的空格,而标红的两...

2024-01-12 #经典句子

精通Excel:20个办公软件实用技巧 让你工作效率事半功倍

精通Excel:20个办公软件实用技巧 让你工作效率事半功倍

...助用户更高效地利用Excel进行办公。这份指南包含了诸如数据筛选、图表制作、公式运用、数据透视表等多个方面的技巧,涵盖了日常办公中最常用的功能。通过这些技巧,用户可以更快捷地处理数据、提高工作效率,同时也能...

2024-02-02 #大杂绘

EXCEL怎么使用查找语句(VLOOKUP函数 HLOOKUP函数)

EXCEL怎么使用查找语句(VLOOKUP函数 HLOOKUP函数)

...横向查找(VLOOKUP)、纵向查找(HLOOKUP),可以用来核对数据,多个表格之间快速导入数据等函数功能。格式:VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)HLOOKUP(lookup_value,table_array,row_index_num,range_lookup)含义:VLOOKUP参数定义HLOOKU...

2023-10-07 #经典句子

Excel黑科技 可以用函数实现中英文自动翻译

Excel黑科技 可以用函数实现中英文自动翻译

...造性的加入了三个web函数,让Excel可以调用网络上的一些数据。利用这些网络函数有些硬核Excel“玩家”已经写出了中英文自动翻译的函数公式,对于不懂编程和网页架构知识的同学来说,函数理解起来是有些难度的,不过可以...

2018-03-19 #经典句子

excel编程系列基础:典型的判断语句应用技巧

excel编程系列基础:典型的判断语句应用技巧

...要在众多的“对象集”中遍历每一个对象,从而达到处理数据的结果,无论是EXCEL、ACCESS、ERP都是如此,即便像高级语言PYTHON、JAVA也同样会有循环语句结构,这就是关系型数据的处理特点。但是我们在循环的过程中,因为各种需...

2023-10-08 #经典句子

对比Excel 一文掌握Pandas表格条件格式(可视化)

对比Excel 一文掌握Pandas表格条件格式(可视化)

「来源: |Python爬虫与数据挖掘 ID:crawler_python」回复“书籍”即可获赠Python从入门到进阶共10本电子书今日鸡汤诸葛大名垂宇宙,宗臣遗像肃清高。大家好,我是才哥。本来这周不是加班周,但是毕竟项目赶进度,还是需要加...

2024-01-09 #经典句子

ReDim语句的应用

ReDim语句的应用

...选。 用于在更改最后一个维度大小时保留现有数组中的数据的关键字。varname 必需。 变量的名称;紧跟命名约定的标准变量。Subscripts 必需。 数组变量的维度;最多可以声明 60 个维度。下标参数使用以下语法:[lower To]上限[, [low...

2023-11-30 #经典句子

Excel VBA编程中必会的三大执行语句

Excel VBA编程中必会的三大执行语句

...我们已经说过,定义变量和数组,都是采用dim 变量名 as 数据类型的形式来声明。比如,dim abc as integer 就是定义一个存放整数型数据的变量,但是在定义的变量abc中有具体的值吗?它在编程中又该如何使用呢?这就需要使用到VBA...

2023-06-07 #经典句子