当前位置: 首页 > news >正文

蓬莱专业做网站公司这里是我做的网站

蓬莱专业做网站公司,这里是我做的网站,郑州网站优化汉狮,建设微网站的特色系列文章目录 python学习—合并TXT文本文件 python学习—统计嵌套文件夹内的文件数量并建立索引表格 python学习—查找指定目录下的指定类型文件 python学习—年会不能停#xff0c;游戏抽签抽奖 python学习—循环语句-控制流 文章目录 系列文章目录功能说明1 准备工作#…系列文章目录 python学习—合并TXT文本文件 python学习—统计嵌套文件夹内的文件数量并建立索引表格 python学习—查找指定目录下的指定类型文件 python学习—年会不能停游戏抽签抽奖 python学习—循环语句-控制流 文章目录 系列文章目录功能说明1 准备工作知识点 关于 Pandas 库 2 第一版代码(1) 指定目录(2) 获取目录下所有.xlsx文件的列表(3) 初始化一个空的DataFrame用于存储所有数据(4) 遍历所有Excel文件并逐个读取然后追加到all_data中(5) 将合并后的数据写入指定文件中(6) 第一版完整代码 3 第二版代码(1) 遍历工作簿中的sheet表(2) 填写工作簿 和 内部 sheet表名称(3) 使用绝对路径增强代码兼容性(4) 完整代码 4 后记 功能说明 同事有个需求手里有很多人编辑的Excel工作簿差不多有20多个现在想把这些分开的工作簿合并为一整个工作簿方便数据查询和使用。 我看了一下这边表格的字段都是相同的不同的是每行的数据有多有少笨方法当然可以新建一个空表格然后再依次打开每个工作簿将内容复制粘贴到新建表格中实现合并的效果。 既然是重复性工作当然是使用python编程了。 本代码目标为 1 将文件夹内的所有表格包括.xls格式 和 .xlsx格式合并为一个表格2 每个工作簿中可能有多个分sheet表3 合并表格的第一列填写每个工作簿文件名称第二列填写工作簿内的分表sheet名称。 1 准备工作 首先在D盘根目录下建立文件夹“测试”在该文件夹内存放多个Excel表格文件内容随意。 我新建了2个工作簿”测试表1.xlsx“ 和 “样例表2.xlsx”工作簿中都有分表内容如下图 数据分析需要用到强大的 Pandas 库创建Excel表格需要用到 openpyxl库查看自己的电脑是否安装了这2个库可以在python终端中输入 pip list运行后会列出你的python环境中安装的所有库文件。 如果没有安装上述两个库可以在python终端中使用如下代码进行安装 pip install pandas openpyxl我使用的python版本为3.9.0Pandas版本 1.5.2 openpyxl版本 3.1.2. 知识点 关于 Pandas 库 ——Pandas Pandas 是一个开源的 Python 数据分析和处理库提供了大量功能使数据分析工作更加高效便捷。以下是对 Pandas 主要特点和功能的概述 数据结构Pandas 两大核心数据结构是 Series一维数组类似于带标签的数组和 DataFrame二维表格型数据结构每列可以是不同类型的值。这两种数据结构非常适合于处理和分析表格化的数据。数据读写Pandas 支持多种文件格式的数据读写操作如 CSV、Excel、SQL 数据库、JSON、HDF5 等使得数据导入导出变得简单快捷。数据清洗提供强大功能用于数据清洗包括缺失值处理、数据类型转换、数据重塑、行列选择、过滤、排序等有助于准备数据进行进一步分析。数据操作支持类似 SQL 的数据操作方法如合并merge、连接join、分组groupby、聚合aggregate、透视表pivot table等便于对数据进行复杂操作。时间序列分析Pandas 对时间序列数据有很好的支持可以方便地进行重采样、移位、日期时间格式转换等操作是金融、经济等领域数据分析的理想工具。统计分析内置了丰富的统计功能如计算描述性统计量均值、中位数、标准差等、相关性分析、协方差、线性回归等帮助用户快速理解数据。可视化虽然 Pandas 本身不直接提供复杂的可视化功能但它与 Matplotlib、Seaborn 等图形库集成紧密可以轻松地对数据进行可视化展示。 总的来说Pandas 是进行数据预处理、数据分析和探索性数据分析的 强大工具广泛应用于数据科学、金融、统计学、社会科学等多个领域。 2 第一版代码 第一版本的代码主要实现一个合并的操作最简单的情况工作簿中只有1个表格。 (1) 指定目录 directory D:/测试(2) 获取目录下所有.xlsx文件的列表 Excel表格有两种后缀名 .xls 和 .xlsx使用后缀名判定。 excel_files [file for file in os.listdir(directory) if file.endswith(.xlsx) or file.endswith(.xls)](3) 初始化一个空的DataFrame用于存储所有数据 all_data pd.DataFrame()(4) 遍历所有Excel文件并逐个读取然后追加到all_data中 使用pandas读取Excel文件假设每份Excel只包含一个工作表并且想要合并所有工作表的数据。 for file in excel_files:file_path os.path.join(directory, file) data pd.read_excel(file_path)all_data pd.concat([all_data, data], ignore_indexTrue)知识点 pandas.concat() 方法 该函数使用pd.concat()方法将file_data数据框合并到merged_data数据框中。 ignore_indexTrue 参数表示合并后重新索引保持索引的连续性。 ignore_indexFalse 表示保留原始的索引。 (5) 将合并后的数据写入指定文件中 //指定合并后的工作簿保存路径和名称 output_file D:/测试/all_hebing.xlsx//将合并后的数据写入新的Excel工作簿 all_data.to_excel(output_file, indexFalse)(6) 第一版完整代码 import os import pandas as pddirectory D:/测试 excel_files [file for file in os.listdir(directory) if file.endswith(.xlsx) or file.endswith(.xls)] all_data pd.DataFrame()# 遍历所有Excel文件并逐个读取然后追加到all_data中 for file in excel_files:file_path os.path.join(directory, file)data pd.read_excel(file_path)all_data pd.concat([all_data, data], ignore_indexTrue)output_file D:/测试/all_hebing.xlsx all_data.to_excel(output_file, indexFalse)print(f合并完成结果已保存至{output_file})结果如下图 可以看到代码实现了基本的Excel工作表合并功能sheet4是 样例表2.xlsx中的第一个表格sheet1是”测试表1.xlsx“ 中的第一个表格。 3 第二版代码 在第一版代码的基础上实现含有多个表格的工作簿合并合并表格的第一列填写工作簿名称第二列填写内部sheet名称。 在代码中添加一些数据读写的判定功能将步骤拆分包装为函数提高运行效率。重点环节代码如下 (1) 遍历工作簿中的sheet表 遍历工作簿首先需要获取这个工作簿的名称然后获取内部的sheet表名称最后按照两级名称读取表格内容。 // 存储表格内容的空列表 sheets_data []// 获取工作簿的名称 xls pd.ExcelFile(file_path)// 获取 工作簿 内的 sheet表的名称并读取表格内容。 for sheet_name in xls.sheet_names:sheet_data xls.parse(sheet_name)这段代码的作用是遍历 Excel文件中的所有工作表并解析每个工作表的数据。 xls.sheet_names 返回一个包含所有工作表名称的列表。 xls.parse(sheet_name) 根据给定的工作表名称解析该工作表的数据并返回。 (2) 填写工作簿 和 内部 sheet表名称 excel表格属于二维表格型数据结构定义列的位置、名称、内容。 sheet_data.insert(0, 文件名称, file_path.name)sheet_data.insert(1, 内部表名称, sheet_name)// 将 insert 的内容append 添加入 保存表格内容的 列表中。sheets_data.append(sheet_data)该函数用于在名为sheet_data的表格的第0列列名为’文件名称’并将其赋值为file_path.name即文件路径中的工作簿文件名部分 表格的第1列列名为’内部表名称’并将其赋值为sheet_name即工作簿文件名部分 (3) 使用绝对路径增强代码兼容性 在代码的路径设置中使用 .resolve() 方法将该路径解析为一个绝对路径. file_path Path(file_path).resolve()具体来说它首先使用Path(file_path)创建一个Path对象然后使用 .resolve() 方法将该路径解析为一个绝对路径。如果该路径是一个符号链接则会解析为符号链接所指向的目标路径。如果路径不存在则会抛出 FileNotFoundError 异常。 该函数的作用是确保后续操作使用的路径是绝对路径避免了相对路径带来的问题如路径解析错误、文件访问错误等。 (4) 完整代码 完整代码如下 import os import pandas as pd from pathlib import Path# 读取Excel文件的所有工作表并为每个工作表的数据添加文件名及工作表名称作为前两列 def read_excel_sheets(file_path):try:# 使用pathlib的绝对路径确保兼容性file_path Path(file_path).resolve()xls pd.ExcelFile(file_path)sheets_data []for sheet_name in xls.sheet_names:sheet_data xls.parse(sheet_name)# 添加文件名和工作表名sheet_data.insert(0, 文件名称, file_path.name)sheet_data.insert(1, 内部表名称, sheet_name)sheets_data.append(sheet_data)return pd.concat(sheets_data, ignore_indexTrue)except FileNotFoundError:print(f文件 {file_path} 不存在。)return pd.DataFrame()except PermissionError:print(f没有权限读取文件 {file_path}。)return pd.DataFrame()except Exception as e:print(f读取文件 {file_path} 时发生未知错误: {e})return pd.DataFrame()# 合并Excel文件将每个文件的所有工作表合并为一个DataFrame并保存到输出文件中。 def merge_excel_files_with_filenames(directory, output_file):directory_path Path(directory).resolve()if not directory_path.exists() or not os.access(directory_path, os.R_OK):print(f无法访问目录 {directory_path}请检查权限和路径。)returnexcel_files list(directory_path.glob(*.xls*))if not excel_files:print(f在目录 {directory_path} 中未找到任何 .xls 或 .xlsx 文件。)returnmerged_data pd.DataFrame()for file_path in excel_files:file_data read_excel_sheets(file_path)merged_data pd.concat([merged_data, file_data], ignore_indexTrue)output_dir Path(output_file).parent.resolve()if not output_dir.exists() or not os.access(output_dir, os.W_OK):print(f无法写入输出文件 {output_file} 的目录请检查权限和路径。)returnmerged_data.to_excel(output_file, indexFalse)print(f合并完成结果已保存至{output_file}。)# 调用合并函数,使用pathlib.path对象以增强代码的清晰度和跨平台能力 if __name__ __main__:path Path(rD:\测试).resolve()over_name all_合并总表.xlsxover_path Path(os.path.join(path, over_name)).resolve()merge_excel_files_with_filenames(path, over_path)再次看一下合并后的Excel工作簿如下图 4 后记 通过以上代码可以实现多个Excel工作簿的合并工作支持中文 。 案例中每个工作簿的结构和字段名称都是一致的当遇到字段结构不一致的时刻代码同样可以实现合并功能。 区别在于 相同字段的内容会存储在相同字段这一列下而不同的字段名在合并时会增加列数用于存放不同字段下面的内容即合并的结果是保留了每个工作簿中的字段名称保证所有数据的完整性。 合并后的工作表不存在 “合并单元格”即源工作簿中的 那些 合并单元格将被拆分。
http://www.dnsts.com.cn/news/86966.html

相关文章:

  • 网站互联网推广企业网站带后台
  • 爱站关键词wordpress增加内存
  • 做网站能收回吗教育类网页设计素材
  • 台州路桥区专业高端网站设计网红助手24小时自助下单app
  • 制作网页网站公司网站建设的趋势
  • 上海集团网站建设价格网络营销的基本方法有哪些
  • 做外贸网站机构seo排名软件免费
  • 建网站 技术传统企业如何做好网络推广
  • 张家港保税区建设规划局网站国家时事新闻
  • 淮南做网站威海德嬴网站建设
  • 做旅行攻略的网站好专家一对一免费咨询
  • 视频网站如何做微信营销产品设计流程8个步骤
  • 专业做网文的网站好申请个人营业执照需要什么资料
  • 公司网站建设哪里好东莞市建设工程质量监督网
  • 网站建设合同属于石家庄网站设计制作服务
  • 网站开发做网站专业的传媒行业网站开发
  • 成都 广告公司网站建设网站建设培训机构
  • 北京做网站报价wordpress 有支付接口
  • 触屏网站云 wordpress
  • 伯维网站建设做网销好的网站
  • 上海大学生做网站的团队全屋定制十大名牌排行最新
  • 做网站需要什么知识团购网站app制作
  • 创意网站建设公司成都小程序推广企业
  • 广州专业做外贸网站html写一个心形网页
  • 美容加盟网站建设wordpress数据库修改
  • 易捷网站内容管理系统漏洞汽车电商网站建设
  • 东莞大朗网站建设公司动漫设计需要学什么
  • 做体育网站青岛房产信息网
  • 莱州哪有做网站的给网站写文章怎么做
  • 可以免费发帖的网站wordpress博客页面模板