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

别再手动合并了!用Python的Pandas库,5分钟搞定多个CSV文件转Excel多Sheet

用Python自动化合并CSV到Excel多Sheet的终极指南每次面对几十个CSV文件需要合并到Excel的不同Sheet时手动操作不仅耗时还容易出错。作为数据分析师我曾在项目初期浪费大量时间在这类重复性工作上直到发现Pandas库的高效解决方案。本文将分享一个经过实战检验的自动化脚本帮你彻底告别繁琐的手工操作。1. 环境准备与基础配置在开始编写自动化脚本前我们需要确保开发环境配置正确。Python 3.6版本是运行Pandas库的基础要求同时建议使用Anaconda发行版它已经内置了数据分析所需的常用库。安装核心依赖只需一行命令pip install pandas openpyxl为什么选择openpyxl而不是xlwt因为openpyxl支持.xlsx格式的读写处理大数据文件时更稳定且能保留Excel的现代功能特性。对于包含超过100万行数据的CSV文件这是更可靠的选择。常见环境问题排查如果遇到编码错误尝试添加encodingutf-8-sig参数内存不足时可分批次处理使用chunksize参数路径问题在Windows系统下需注意反斜杠转义2. 核心脚本解析与优化原始脚本虽然功能完整但在异常处理和性能上还有优化空间。下面是我重构后的增强版代码增加了以下关键改进import os import pandas as pd from tqdm import tqdm # 进度条显示 def csv_to_excel_sheets(input_folder, output_file): 将指定文件夹下的所有CSV合并到一个Excel文件的不同Sheet中 :param input_folder: 包含CSV文件的文件夹路径 :param output_file: 输出的Excel文件路径 if not os.path.exists(input_folder): raise FileNotFoundError(f输入文件夹不存在: {input_folder}) csv_files [f for f in os.listdir(input_folder) if f.endswith(.csv) and os.path.isfile(os.path.join(input_folder, f))] if not csv_files: raise ValueError(指定文件夹中没有找到CSV文件) with pd.ExcelWriter(output_file, engineopenpyxl) as writer: for csv_file in tqdm(csv_files, desc处理进度): try: file_path os.path.join(input_folder, csv_file) sheet_name os.path.splitext(csv_file)[0][:30] # 限制sheet名称长度 df pd.read_csv(file_path, encodingutf-8-sig) df.to_excel(writer, sheet_namesheet_name, indexFalse) except Exception as e: print(f处理文件 {csv_file} 时出错: {str(e)}) continue print(f所有CSV文件已成功合并到 {output_file}) if __name__ __main__: input_dir input(请输入CSV文件所在文件夹路径: ) output_path os.path.join(input_dir, combined_output.xlsx) csv_to_excel_sheets(input_dir, output_path)关键优化点说明异常处理机制增加了文件夹存在性检查、空文件夹检测和单文件处理异常捕获进度可视化使用tqdm库显示处理进度编码兼容性默认使用utf-8-sig编码能正确处理带BOM的CSV文件Sheet命名规范自动截断过长的文件名避免Excel报错上下文管理使用with语句确保ExcelWriter正确关闭3. 高级应用场景扩展基础功能满足后我们可以根据实际需求进行功能扩展。以下是几个常见的高级应用场景3.1 大数据量分块处理当CSV文件特别大时超过100MB直接读取可能导致内存溢出。这时可以使用分块读取技术chunk_size 100000 # 每次读取10万行 chunks pd.read_csv(large_file.csv, chunksizechunk_size) for i, chunk in enumerate(chunks): process_chunk(chunk) # 自定义处理函数3.2 自动数据类型识别Pandas在读取CSV时可能无法正确识别某些特殊格式如日期。我们可以指定数据类型dtype_spec { 订单号: str, # 防止长数字被科学计数法显示 日期: datetime64[ns], 金额: float } df pd.read_csv(data.csv, dtypedtype_spec)3.3 多文件夹批量处理如果需要处理嵌套文件夹结构中的CSV文件可以使用os.walk递归查找def find_all_csvs(root_dir): csv_paths [] for root, _, files in os.walk(root_dir): for file in files: if file.lower().endswith(.csv): csv_paths.append(os.path.join(root, file)) return csv_paths4. 性能优化与最佳实践经过多次项目实践我总结出以下性能优化技巧内存管理技巧及时删除不再需要的DataFramedel df使用dtype参数指定列类型减少内存占用对于分类数据使用category类型处理速度对比方法10个CSV(总50MB)100个CSV(总500MB)原始脚本12.3秒内存溢出优化版8.7秒102秒分块处理版9.1秒98秒编码问题解决方案尝试常见编码utf-8, gbk, utf-16, latin1使用chardet库自动检测编码import chardet with open(file.csv, rb) as f: result chardet.detect(f.read(10000)) encoding result[encoding]Excel格式优化设置自动列宽from openpyxl.utils import get_column_letter def auto_adjust_columns(writer, sheet_name): worksheet writer.sheets[sheet_name] for col in worksheet.columns: max_length max(len(str(cell.value)) for cell in col) worksheet.column_dimensions[get_column_letter(col[0].column)].width max_length 25. 常见问题与解决方案在实际应用中可能会遇到各种意外情况。以下是几个典型问题及解决方法问题1Sheet名称重复Excel要求每个Sheet名称必须唯一。解决方案是自动添加后缀base_name os.path.splitext(csv_file)[0][:25] # 保留25个字符 sheet_name base_name counter 1 while sheet_name in writer.sheets: sheet_name f{base_name}_{counter} counter 1问题2特殊字符导致报错某些特殊字符如:/*?[]不能出现在Sheet名称中需要过滤import re def clean_sheet_name(name): return re.sub(r[\\/*?[\]:], , name)[:31]问题3超大数据量处理当总数据量超过Excel单Sheet限制1048576行×16384列时解决方案提前检查数据量大小自动分割到多个Excel文件使用数据库存储替代方案提示处理前先用os.path.getsize检查文件大小超过100MB的建议先进行数据抽样或分块处理6. 企业级应用扩展对于需要每日运行的自动化任务我们可以将其包装成更健壮的生产级解决方案日志记录功能import logging logging.basicConfig( filenamecsv_to_excel.log, levellogging.INFO, format%(asctime)s - %(levelname)s - %(message)s ) try: # 转换代码 except Exception as e: logging.error(f处理失败: {str(e)}, exc_infoTrue)邮件通知功能import smtplib from email.mime.text import MIMEText def send_notification(subject, body): msg MIMEText(body) msg[Subject] subject msg[From] automationexample.com msg[To] adminexample.com with smtplib.SMTP(smtp.example.com) as server: server.send_message(msg)配置文件管理[settings] input_folder /data/input output_folder /data/output max_file_size_mb 50 allowed_extensions .csv,.txtimport configparser config configparser.ConfigParser() config.read(config.ini) input_dir config[settings][input_folder]7. 替代方案比较虽然Pandas是处理这类任务的主流选择但了解替代方案也很重要工具/库优点缺点适用场景Pandas功能全面社区支持好内存消耗较大大多数常规需求Dask处理超大数据集学习曲线陡峭超过内存限制的数据csvkit命令行工具无需编程功能有限简单快速转换Excel VBA无需外部依赖跨平台兼容性差纯Windows环境对于非技术用户可以考虑使用现成的GUI工具如Tabula开源PDF/CSV工具KNIME可视化数据分析平台Alteryx企业级数据准备工具8. 实际案例销售数据整合去年我为一家零售客户实施了这个解决方案他们需要将全国300多家门店每日的销售CSV报表约500MB合并分析。原始手动操作需要2小时使用优化后的脚本后处理时间缩短到8分钟自动生成带日期标记的Excel文件错误率从5%降到0.1%增加了自动备份机制关键改进代码from datetime import datetime def generate_output_path(input_dir): today datetime.now().strftime(%Y%m%d) return os.path.join(input_dir, fconsolidated_sales_{today}.xlsx) def backup_source_files(csv_files): backup_dir os.path.join(os.path.dirname(csv_files[0]), backup) os.makedirs(backup_dir, exist_okTrue) for file in csv_files: shutil.copy2(file, backup_dir)这个项目让我深刻体会到一个好的自动化脚本不仅能节省时间更能减少人为错误提高数据可靠性。

相关文章:

别再手动合并了!用Python的Pandas库,5分钟搞定多个CSV文件转Excel多Sheet

用Python自动化合并CSV到Excel多Sheet的终极指南 每次面对几十个CSV文件需要合并到Excel的不同Sheet时,手动操作不仅耗时还容易出错。作为数据分析师,我曾在项目初期浪费大量时间在这类重复性工作上,直到发现Pandas库的高效解决方案。本文将分…...

文献管理如何突破效率瓶颈:WPS-Zotero插件的平民化应用指南

文献管理如何突破效率瓶颈:WPS-Zotero插件的平民化应用指南 【免费下载链接】WPS-Zotero An add-on for WPS Writer to integrate with Zotero. 项目地址: https://gitcode.com/gh_mirrors/wp/WPS-Zotero 学术写作中,文献管理往往成为非技术背景研…...

StructBERT语义相似度工具保姆级教程:从安装到实战应用全解析

StructBERT语义相似度工具保姆级教程:从安装到实战应用全解析 1. 工具简介与核心价值 如果你经常需要处理中文文本的语义匹配问题,比如判断两句话是否表达相同意思、识别同义句或者进行文本去重,那么StructBERT语义相似度工具就是为你量身定…...

ai辅助开发:让kimi助手帮你智能分析与生成openclaw模型修改代码

最近在做一个机器人抓取相关的项目,接触到了OpenClaw模型。这个模型本身挺有意思的,但在实际应用时,总要根据不同的抓取对象和环境进行一些调整,比如修改网络结构、调整损失函数权重或者换用不同的优化器。每次修改都得去翻论文、…...

Realistic Vision V5.1写实人像生成案例:汉服/西装/运动装三类风格统一输出

Realistic Vision V5.1写实人像生成案例:汉服/西装/运动装三类风格统一输出 1. 项目概述 Realistic Vision V5.1虚拟摄影棚是一款基于当前最先进的写实人像生成模型开发的本地化工具。这个解决方案让普通用户无需专业摄影设备,就能生成媲美单反相机拍摄…...

2024最新AI期刊排名:哪些CCF推荐期刊正在崛起或没落?

2024年AI学术期刊动态图谱:谁在崛起,谁在掉队? 翻开任何一位AI研究者的浏览器书签栏,学术期刊的投稿入口总是占据着显眼位置。选择一本合适的期刊投稿,不仅关乎研究成果的传播效率,更直接影响学术生涯的发展…...

DBeaver连接ClickHouse避坑指南:Maven依赖离线解决方案

DBeaver连接ClickHouse避坑指南:Maven依赖离线解决方案 在离线环境下使用DBeaver连接ClickHouse数据库时,最大的挑战莫过于处理Maven依赖问题。许多开发者和数据库管理员都曾遇到过这样的困境:明明已经下载了DBeaver和ClickHouse驱动&#xf…...

微信小程序身份证检测实战:从createVKSession报错到真机调试的完整避坑指南

1. 初识createVKSession报错:模拟器与真机的差异 最近在开发微信小程序的身份证检测功能时,遇到了一个让人头疼的问题:createVKSession:fail The current device does not support version "v1"。这个错误在微信开发者工具的模拟器…...

Mathematica小数转分数实战:从Rationalize到SetPrecision的5种精准转换技巧

Mathematica小数转分数实战:从Rationalize到SetPrecision的5种精准转换技巧 在科学计算和工程仿真中,数值精度往往直接决定结果的可靠性。Mathematica作为符号计算领域的标杆工具,其独特的精确算术体系让0.10.2能够准确等于3/10而非浮点近似值…...

Nomic-Embed-Text-V2-MoE全栈开发:Node.js后端API服务搭建指南

Nomic-Embed-Text-V2-MoE全栈开发:Node.js后端API服务搭建指南 你是不是也遇到过这样的场景?手头有一个用Python写的、效果很棒的Nomic-Embed-Text-V2-MoE模型,想把它集成到你的Web应用里,但前端是JavaScript生态,后端…...

C语言实战:四种算法求最大公约数,哪种更适合你的项目?

C语言实战:四种算法求最大公约数,哪种更适合你的项目? 在嵌入式开发、密码学运算或性能敏感型系统中,最大公约数(GCD)计算常作为基础组件出现。选择不当的算法可能导致实时系统延迟、高并发服务吞吐量下降&…...

VMware Workstation Pro 16虚拟硬盘扩容实战:从分区到永久挂载全流程

VMware Workstation Pro 16虚拟硬盘扩容全流程指南:从分区规划到永久挂载 当你在VMware虚拟机中运行Windows或Linux系统时,是否经常遇到"磁盘空间不足"的警告?作为一款强大的虚拟化工具,VMware Workstation Pro 16提供了…...

CANoe 15.0+VT System实战:手把手教你配置实时处理器VT6000的VTP平台

CANoe 15.0与VT6000实战:VTP平台高效配置指南 在新能源汽车电子控制系统测试领域,Vector公司的CANoe软件与VT System硬件组合已成为行业标杆解决方案。随着CANoe 15.0版本的发布,其集成的Vector Tool Platform(VTP)为V…...

紧急!Dify v0.12.3升级后Token统计偏差达±34.7%——生产环境监控校准指南(附校验脚本+Diff测试用例)

第一章:紧急!Dify v0.12.3升级后Token统计偏差达34.7%——生产环境监控校准指南(附校验脚本Diff测试用例)Dify v0.12.3 版本在 token 计数器底层逻辑中引入了对 tiktoken 编码器的缓存策略变更,导致在含多语言混合、特…...

学术党必备!用Pdfarranger高效处理双栏论文PDF的5个实用技巧

学术党必备!用Pdfarranger高效处理双栏论文PDF的5个实用技巧 作为一名常年与学术论文打交道的科研人员,最头疼的莫过于阅读双栏排版的PDF文献——狭窄的页边距让批注无处安放,频繁左右滚动屏幕又容易打断思路。直到发现Pdfarranger这款开源工…...

Clawdbot汉化版镜像免配置:预装pnpm+Node 20+Ollama 0.3.10,省去90%环境踩坑

Clawdbot汉化版镜像免配置:预装pnpmNode 20Ollama 0.3.10,省去90%环境踩坑 1. 为什么选择Clawdbot汉化版镜像? 如果你曾经尝试过部署AI聊天机器人,一定经历过这样的痛苦:Node版本不对、依赖包冲突、环境配置复杂、模…...

树莓派5性能实测:用Samba共享NVMe SSD能跑多快?附4K视频传输对比数据

树莓派5 NAS性能深度评测:NVMe SSD与USB3.0的Samba传输对决 当树莓派5遇上PCIe NVMe SSD,这个小巧的单板计算机瞬间变身高性能网络存储中心。作为2023年发布的树莓派最新型号,树莓派5首次带来了真正的PCIe接口支持,这彻底改变了以…...

零基础玩转BERT文本分割:中文长文档自动分段保姆级教程

零基础玩转BERT文本分割:中文长文档自动分段保姆级教程 1. 为什么你需要文本自动分段? 在日常工作和学习中,我们经常会遇到这样的困扰:面对大段没有分段的文字,阅读起来费时费力。特别是会议记录、访谈稿、学术论文等…...

PayPal中国账户交易被拒?手把手教你解决跨境支付难题

PayPal跨境支付实战指南:破解中国账户交易限制的6种高阶方案 跨境支付的最后一公里,往往卡在PayPal账户的地域限制上。上周我的团队刚帮一家深圳的SaaS公司解决了这个问题——他们的欧洲客户无法通过PayPal完成订阅支付,后台却只显示"为…...

AI辅助开发实战:基于YOLOv11与大模型的口罩检测系统毕业设计全流程解析

最近在帮学弟做毕业设计,发现很多同学在AI项目开发中都会遇到一些共性问题。特别是当需要把目标检测模型和AI大模型结合起来时,各种兼容性、部署和性能问题就冒出来了。这次我们以“口罩检测系统”这个经典课题为例,完整走一遍从选型到部署的…...

SAP FICO会计凭证自动拆分实战:从配置到BADI实现全流程解析

SAP FICO会计凭证自动拆分实战:从配置到BADI实现全流程解析 在SAP FICO模块的实际项目实施中,会计凭证行项目数量超过系统限制是一个常见痛点。当业务单据包含大量行项目时,传统的凭证处理方式往往会遇到行号溢出的技术瓶颈。本文将深入剖析S…...

SER5 Pro迷你主机折腾记:ESXi 6.7+OpenWRT+群晖NAS三合一保姆级教程

SER5 Pro迷你主机全能实验室:从硬件解析到三系统无缝整合实战 零刻SER5 Pro这款AMD Ryzen 7 5800H加持的迷你主机,正在重新定义家庭实验室的性价比边界。当大多数用户还在为选择单一功能设备犹豫时,我们已经可以用这台巴掌大的机器同时承载虚…...

Markdown Viewer:革新文档预览体验的浏览器扩展

Markdown Viewer:革新文档预览体验的浏览器扩展 【免费下载链接】markdown-viewer Markdown Viewer / Browser Extension 项目地址: https://gitcode.com/gh_mirrors/ma/markdown-viewer Markdown Viewer作为一款高效的开源工具,通过在浏览器中直…...

重塑暗黑体验:d2s-editor如何释放玩家创作自由

重塑暗黑体验:d2s-editor如何释放玩家创作自由 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 在暗黑破坏神2的世界里,每一位玩家都曾面临过理想与现实的矛盾:渴望体验多样化的角色build&…...

Ubuntu服务器GPU挖矿病毒排查实战:从异常进程到crontab定时任务清理

Ubuntu服务器GPU挖矿病毒排查实战:从异常进程到crontab定时任务清理 当服务器GPU资源突然被神秘进程占满,而团队成员纷纷表示"这不是我的程序"时,作为系统管理员的警报就该拉响了。上周五凌晨,我们的监控系统突然发出GP…...

Axure电商原型避坑指南:高保真移动端设计中的5个常见错误及解决方案

Axure电商原型避坑指南:高保真移动端设计中的5个常见错误及解决方案 在移动电商领域,高保真原型设计不仅是产品功能的可视化呈现,更是团队协作和用户测试的重要工具。Axure作为专业原型设计工具,能够帮助设计师和产品经理快速构建…...

代理池搭建避坑指南:66代理和西刺代理的爬取与清洗实战

高可用代理池构建实战:从数据采集到智能调度的全链路优化 在数据采集和自动化测试领域,稳定可靠的代理资源是确保业务连续性的关键基础设施。一个设计良好的代理池系统不仅需要解决IP资源的获取问题,更要处理有效性验证、智能调度和异常处理等…...

手把手教你用3D Xpoint加速Python数据分析:比DRAM便宜比SSD快的秘密

3D Xpoint实战指南:用下一代存储技术加速Python数据分析 在数据科学领域,性能瓶颈往往出现在存储I/O层面。传统DRAM虽然速度快但成本高昂且容量有限,而NAND闪存虽然价格亲民却受制于写入延迟和寿命问题。3D Xpoint技术作为存储领域的新星&…...

Typora+Pandoc导出AI生成内容的完整配置指南(附常见问题解决)

TyporaPandoc高效导出AI生成内容的终极实践指南 在内容创作领域,AI生成文本正以惊人的速度改变着工作流程。无论是技术文档、市场分析还是学术论文草稿,我们每天都要处理大量来自ChatGPT、Claude等工具的Markdown格式输出。但将这些内容快速转化为客户或…...

RetinaFace在网络安全中的应用:人脸识别身份验证系统

RetinaFace在网络安全中的应用:人脸识别身份验证系统 1. 引言 想象一下这样的场景:每天上班不用再找工卡,回家不用掏钥匙,登录系统不用记密码——只需要看一眼摄像头,门就自动打开,系统就自动登录。这不是…...