Python自动化按规则拆分Excel数据并生成子文件
在进行Excel数据拆分之际, 难道是依旧在通过手动以筛选, 而后复制又新建的文件做法吗? 举例而言, 就要像是针对有着包含1000行数据的“客户表”, 依据“地区”进行拆分成为华北、华东等子表, 并且每个子表都保存成为单独形式的Excel , 如此不停重复操作直至让人头晕, 同时还极容易出现漏行现象。实际上在对基础信息提取加以掌握之后 , 我们能够朝着进阶方向去学习按照规则进行数据拆分, 也就是运用只需几行代码, 便能够自动依照列值来拆分Excel并且生成子文件, 其步骤简单容易上手, 可让数据拆分效率实现翻倍必备库安装教程bash# 处理Excel的核心库pip1. 代码拆解as pd # 复用之前学的库os# 步骤1读取要拆分的Excel文件对比于提取信息来看, 在这里, 属于“读Excel”而并非“读TXT”, 对此可略作扩展。 客户信息总表.xlsx # 总表路径df pd.() # 用读取Excel生成数据表格# 步骤2指定按哪一列拆分比如按“地区”列 地区 # 可改为“部门”“类别”等需要拆分的列名# 步骤3创建存放子文件的文件夹 按地区拆分的客户表存在的情况下, os., 使其等于 True, 以此来自动创建文件夹, 并且若是已存在的话, 那么不会产生报错。# 步骤4按列值拆分并生成子文件先要去得到, 这一序列的, 全部的, 不重复的, 有哪些值呢, 比如像是, 华北, 还有华东, 以及华南。 df.()for value in :# 筛选出当前值对应的所有行比如所有“华北”地区的客户 dfdf value# 制作子文件路径, 像是“按地区划分的客户表格目录之下的华北地区客户所对应的 xls 表格文档”。等于, 与操作系统路径相关的函数联结, 空字符串, 格式化字符串, 其中表达的值, 加上客户, 再加上后缀为xlsx的文件名字符串。把子文件进行保存, 去除掉index等于False的设置, 以此来避免产生多余的索引列。.(, indexFalse)print(f已生成{}共{len()}行数据)print(f拆分完成所有子文件保存在{}文件夹)代码逻辑顺着基础操作的思路延续下去: 先是读取数据, 明确是从Excel而非TXT读取, 接着依据指定列的不同值, 像“地区”列出现的“华北”“华东”来筛选数据, 最后各自保存成为子文件, 与手动操作相较, 代码借由循环自行处理所有分类, 把重复筛选的步骤省去, 并且不会出现漏行的状况, 对于学过基础信息提取的人而言, 只要领会“按列拆分”的逻辑, 便能够迅速上手。2. 场景应用从基础到进阶的过渡将财务所拆分的“员工工资总表.xlsx”, 依据“部门”这一列, 拆分为“技术部工资.xlsx”以及“行政部工资.xlsx”, 各个部门之中的负责人会直接获取到自身所在部门的数据, 不存在再从总表当中实施筛选此情况的了。一场景是, 运营于“全平台销售数据.xlsx”该文件里, 依据“平台”这一列进行拆分, 从而得到“淘宝销售.xlsx”以及“京东销售.xlsx”这两个文件, 将它们分别发送给对应平台的运营专员, 去做针对性的分析。当教师要拆分“学生成绩总表.xlsx”时, 会依据“班级”列来生成各个班级的成绩表, 在发给班主任之际, 不是通过手动进行复制粘贴的方式, 好以此避免泄露其他班级的信息从而造成不良影响。3. 避坑指南进阶时容易踩的小问题列名有误: 要是所填列名, 像“地区”这样的, 于Excel当中并不存在, 就会给出提示“”, 得核查Excel里的列名是否一致, 要留意空格情况, 比如“ 地区 ”跟“地区”是不一样的。您提供的内容似乎不完整且有错误表述, 不太能按照要求全面准确改写。请您检查并补充完整正确的内容表述。) 删除空值行- 数据量过多: 超出10万行的Excel有可能拆分速度较迟缓, 能够先依“”对总表开展排序, 并随后进行拆分, 进而提升效率。信息丢失: 复杂样式像合并单元格、条件样式于拆分后会有可能不见, 要是想要留存样式, 能够改使用文件库稍微复杂些, 适宜后续深入研习。进阶小尝试基于此代码扩展运用多列进行拆分, 举例来说, 首先依据“地区”展开拆分, 接着再按照“客户等级”加以拆分, 在这个过程中需要运用嵌套循环来达成拆分操作。拆分之后, 会结合之前所学的邮件发送功能, 将其直接自动发送给对应负责人, 然后把邮件发出。- 保留表头的情况下: 直至当前, 代码已然是按照预设好的状况保留着表头, 要是存在有待于在子文件里增添额外说明这么一种情形举例来说像是“数据截止日期: 2024 - 05”这样的表述 , 那么能够在得以保存之前增添一行。对于办公自动化进阶范畴的拆分Excel, 从基础层面起始直至迈进进阶阶段, 在周四所进行的数据拆分 , 是有着相关流程与操作要求的。