Python3 编写处理Excel表格数据筛选脚本用到的一些方法

article/2025/10/8 13:56:08

记录下之前用python3 写的一个处理Excel表格数据筛选脚本用到的一些方法。

本文内容比较杂,可按需跳转翻看。

pandas是一个内容十分丰富的库,我也只不过用到其中处理excel的方法,对这个库感兴趣的可以直接翻阅pandas官方文档,对处理excel方法部分感兴趣的可以点击这里

目录

  • pandas安装
  • 图形化收集文件夹和文件名
  • 自动创建文件夹
  • pandas读取Excel表格
  • pandas筛选Excel表格数据
  • pandas生成新数据表
  • 结尾

pandas安装

本文所用Python环境为3.9,操作系统为Windows 10

安装pandas库

pip install pandas

本文安装完pandas库后还需安装依赖库openpyxl

pip install openpyxl

图形化收集文件夹和文件名

脚本的初衷是批量化处理数据,收集文件信息必不可少,减少文本输入是编写脚本的一个初衷,所以选择图形化界面收集文件信息

Python3 内置提供了图形化界面库tk和文件操作库os,直接导入所用到库

import pandas as pd
import os
from tkinter import *
import tkinter.filedialog

Tk()创建图形化窗口收集文件夹路径,os.listdir()收集路径下子文件名生成列表

root = Tk()  # 创建图形化窗口
path = tkinter.filedialog.askdirectory()  # 选择文件夹
list_filename = os.listdir(path)

也可直接收集单个文件名信息

file = tkinter.filedialog.askopenfilename()  # 选择一个文件,收集到文件绝对路径
path, filename = os.path.split(file)[0], os.path.split(file)[1]  # path为路径,filename为文件名

自动创建文件夹

需要对数据进行分类导出,自动创建文件夹进行分类

创建一个列表,使用os库进行文件夹创建,此处按地市来创建,将新创建的文件夹放置于原文件夹下

city = ['北海', '崇左', '防城港', '贵港', '桂林', '河池', '贺州', '来宾', '柳州', '南宁', '钦州', '梧州', '玉林', '百色']for i in city:path_new = path + '/分类/' + iexists = os.path.exists(path_new)if not exists:  # 如果未创建目录os.makedirs(path_new)print(f'目录{path_new}已创建')

pandas读取Excel表格

将之前收集到的文件信息重新构建成绝对路径以便读取,同时使用endswith()判断文件名后缀为.xlsx,使用pandas的read_excel()进行读取

for n in list_filename:filename = path + '/' + nif filename.endswith('.xlsx'):ws = pd.read_excel(filename, sheet_name=0, keep_default_na=False)

其中sheet_name=可用表名或者数字,0代表第一个表,1代表第二个表,'sheet1’代表读取sheet1表,以此推类;keep_default_na=False表示读取到空单元格时不使用NaN代替。除此外还有其他参数,请参考pandas文档

以此方式读取表格会产生columns列标签和index行索引,如图:
在这里插入图片描述

pandas筛选Excel表格数据

本文筛选条件为按列筛选地市数据并分类,使用str.contains()方法进行筛选

for i in city:md = ws.loc[ws['所属地市'].str.contains(i, na=False, regex=True)]

此处na=False为遇单元格为空时不填充NaN;loc[ ]通过标签或布尔数组访问一组行和列。

contains()方法筛选较为宽松,填充内容默认为正则表达式,即regex=True,当regex=False则以字符串来进行筛选。

如下图:

所属地市:南宁 筛选出结果:
在这里插入图片描述
所属地市:南宁或桂林 筛选出结果:
在这里插入图片描述
以字符串筛选:
在这里插入图片描述
所属地市:除去南宁或桂林 筛选出结果:
在这里插入图片描述
也可换成在后面 == False,效果相同

当需要更严格筛选时,可使用str.fullmatch()

fullmatch()仅当字符串完全匹配时为真
在这里插入图片描述
当多重列筛选时,可以先全部收集,再使用 drop_duplicates() 进行自动去重

注意! 筛选的数据一般需要使用loc[ ] 来进行整行数据摘取

pandas生成新数据表

筛选完数据后,需要生成新数据表,本文使用 to_excel()来生成

to_excel() 指向地址若已存在同名数据表,将会对该数据表进行内容覆盖,使用时需注意
在这里插入图片描述
此处index=False 为不额外生成行索引,否则会在每行数据前多加一个数字索引

除此外,若没有筛选到数据,to_excel()也会生成新数据表,但仅存在列标签,若想筛选无结果不建立新表,仅需判断有无行索引

if len(wd.index.values):wd.to_excel(path + new_filename, index=False)print(path + new_filename + " OK")
else:print("筛选数据为空 不创建表")

结尾

文章到这里就结束了,想了解更多pandas用法可前往pandas官方翻看pandas十分钟上手教程

如对代码如果有什么疑问可以评论或私信,觉得有用的话还可以关注收藏一手 - ’ v ’ - 十分感谢。


循循而进,一往无前。


http://chatgpt.dhexx.cn/article/yJqv3IOk.shtml

相关文章

Xmind转换Excel

简介:支持批量读取Xmind文件生成Excel表格,实现每列相同数值进行宽度自适应并合并居中; 1、Xmind格式如下图所示: 2、表格效果如图所示: #!/usr/bin/env python # -*- coding: utf-8 -*- import os import pandas as pd import openpyxl from openpyxl.styles import…

Sql 脚本导入EXCEL数据

Sql 脚本导入EXCEL数据 1 delete excel 2 3 -- 讀取EXCLE表數 4 SELECT e_mail excel FROM OPENDATASOURCE ( Microsoft.Jet.OLEDB.4.0 , 5 Data SourceC:\Documents and Settings\geovindu\桌面\vip平常按排工作\2010-06-18\2010-06-18.xls;Extended PropertiesExce…

Excel与DBC互转脚本(基于MATLAB)

Excel与DBC互转脚本(基于MATLAB) Excel与DBC互转脚本,有了这个脚本,可以自动把excel的通信协议转换为标准dbc文件,减少工作量,不会造成因手工制作DBC文件会出现问题而难以检查的风险。 转换脚本基于MATLAB编…

jmeter开发导入excel脚本

测试过程中,经常需要对导入excel进行性能、自动化测试,很多导入脚本并不支持录制功能,只能通过抓包方式获取请求参数,然后在手工开发脚本,由于很多同学可能对导入这块没有实际操作经验,开发起来会很困难&am…

脚本 - EXCEL

一个EXCEL表格,有108行的数据(也就是有108个地区)和12个属性,画ECharts图时获取数据很麻烦,相比之下写脚本处理数据就很方便了。 基本使用 import xlrd #读取EXCEL#打开EXCEL文件 data xlrd.open_workbook(rD:\tryex…

excel内容合并脚本

README 脚本中环境变量改成自己实际得环境变量 pathos.chdir(r’D:\工作\pythonProject\合并excel\合并’) #需要合并得excel savefile “D:/工作/pythonProject/合并excel/test.csv” #合并后保存得位置 文件名自定义 sheet_name ‘20220527’ #要合并得sheet 合并前后对比…

Excel 脚本编写

本页内容 使用 Excel:快速回顾将数据添加到电子表格中Excel 中的格式设置使用范围数据排序哦,真的是这样:从 Active Directory 中提取数据就这些吗? 我猜测当您自称为 Microsoft Scripting Guy 并撰写名为脚本编写门诊 (Scripti…

运行 Excel 脚本

目的 Excel 模板生成一个 Excel 电子表格。它还将生成一个脚本,该脚本可以将数据从该电子表格传输到 SAP。包括错误处理,使您能够在将数据传输到 SAP 之前更正任何错误。要运行Excel脚本,请执行以下操作。 用户界面 查找生成的工作台脚本。…

分享2个Python处理Excel的脚本

一、写在前面 来源于两个读者的学习/工作需求,很巧,这两个读者提的需求都是关于批量合并sheet(检索需要的信息)。 本文所用数据样式,经读者同意,可以公开,文件中的数据为Excel中的Rand函数生成…

热烈祝贺我公司获得“渣土车智慧监控平台软件著作权登记证书”

根据《中华人民共和国计算机软件保护条例》和《计算机软件著作权登记办法》的规定,经中华人民共和国国家版权局审定,我公司自主研发的——“索迪迈渣土运输管理平台V1.0”的软件,被正式授予《中华人民共和国国家版权局计算机软件著作权登记证…

热烈祝贺公司获得“采砂智能监控管理平台”计算机软著权登记证书

热烈祝贺我司荣获计算机软件著作权登记证书。我司一直十分注重产品研发工作,我们坚信技术创新是公司生存的基础,科技发展是企业腾飞的平台。 这次计算机软件著作权登记证书的获得有利于公司进一步完善知识产权保护体系,形成持续创新机制&…

10万+标注数据开放!驾驶员不良驾驶识别/电动车进电梯检测/渣土车车牌识别/反光衣识别等8大赛题详解来了!...

ECV-2021极市计算机视觉开发者榜单大赛(以下简称ECV-2021)已于2021年7月6日正式开赛! ECV-2021由青岛市人民政府指导,极视角科技有限公司、 青岛市委台港澳办、青岛市工业和信息化局、青岛西海岸新区管委和青岛市城市管理局主办&a…

停车场智能化管理系统

摘 要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于停车场智能化管理系统当然也不能排除在外,随着网络技术的不断成熟,带动了停车场智能化管理系统,它彻底…

XX市智慧环卫管理系统解决方案V1.0

目 录 第一章 建设背景 1 1.1 管理背景 1 1.2 需求分析 1 第二章 方案概述 4 2.1 方案简介 4 2.2 系统架构 5 第三章 系统功能设计 6 3.1 车辆机务管理子系统 6 3.1.1 车辆台账管理 6 3.1.2 车辆维修管理 7 3.1.3 车辆维保管理 7 3.2 环卫车辆监管子系统 8 3.2.1 …

工程机械车辆环保数据监控平台

软件架构文档 版本 <1.1> 目的 本文档将从架构方面对系统进行综合概述&#xff0c;其中会使用多种不同的架构视图来描述系统的各个方面。它用于记录并表述已对系统的架构方面作出的重要决策。 架构目标和约束 系统在开发过程中有如下设计约束&#xff1a;开发语言为J…

机动车乱停乱放检测系统(源码&部署教程)

1.识别效果展示 2.视频演示 [YOLOv7]基于YOLOv7的机动车乱停乱放检测系统(源码&#xff06;部署教程)_哔哩哔哩_bilibili 3.YOLOv7算法简介 YOLOv7 在 5 FPS 到 160 FPS 范围内&#xff0c;速度和精度都超过了所有已知的目标检测器 并在 V100 上&#xff0c;30 FPS 的情况下…

24小时不间断监控垃圾车运行轨迹,Web 3D 智慧环卫

智慧环卫系统作为智慧城市的一部分&#xff0c;是社会发展的需要。城市环卫有诸多痛点&#xff0c;也需要通过更加先进的技术来解决。 HT for Web 不止自主研发了强大的基于 HTML5 的 2D、3D 渲染引擎&#xff0c;为可视化提供了丰富的展示效果。介于 2D 组态和 3D 组态上&…

工地车辆未冲洗识别 渣土车清洗检测系统 YOLO

工地车辆未冲洗识别 渣土车清洗检测系统通过AI图像识别技术性边缘视频分析以及yolo深度学习模型等技术&#xff0c;对现场画面中车辆清洗进行识别检测。Yolo算法采用一个单独的CNN模型实现end-to-end的目标检测&#xff0c;核心思想就是利用整张图作为网络的输入&#xff0c;直…

渣土车识别YOLOv5

主要使用的技术 开发软件 pycharm anaconda 开发语言 Python 开发框架 pytorch 主要开源库:OpenCV numpy 等 主要技术:yolov5 gpu加速:cuda cudnn&#xff0c;兼容CPU模式

智慧环卫管理系统方案

智慧环卫管理系统方案 2022年6月 慧环卫项目综述 智慧环卫背景 城市环境卫生管理是一项复杂而系统的社会工程&#xff0c;不仅是一个城市的“脸面”也是一个城市的文明程度的重要标志。是与人民群众生活最直接、最贴切、最敏感的重要工作之一&#xff0c;随着城市人民生活水平…