赞
踩
帮对象处理所需数据时写的代码——第五弹(实现功能:Python实现合并不同文件夹内的多个csv文件;命令端快速合并单个文件夹的csv文件;最后介绍一款好用的文本编辑器EmEditor)
目录
在本节中,导入必要的库(pandas、glob和)。tqdm该folder_path变量指定 CSV 文件所在的文件夹路径。该all_csv_files变量用于glob.glob()检索指定文件夹及其子文件夹内的所有 CSV 文件路径。merged_data创建一个名为 的空 DataFrame来存储合并的数据。该total_files变量计算找到的 CSV 文件的总数。最后,使用库初始化进度条tqdm来跟踪合并 CSV 文件的进度。
- import pandas as pd
- import glob
- from tqdm import tqdm
-
- folder_path = r'C:\Users\dell\Desktop\TRY'
- all_csv_files = glob.glob(folder_path + '/**/*.csv', recursive=True)
-
- merged_data = pd.DataFrame()
- total_files = len(all_csv_files)
- progress_bar = tqdm(total=total_files, unit='file', desc='Merging CSV files')
'运行
此部分迭代列表中的每个 CSV 文件all_csv_files。该pd.read_csv()函数用于将每个 CSV 文件读取到名为 的 DataFrame 中df。该pd.concat()函数用于连接dfDataFrame merged_dataDataFrame,将它们合并在一起。该ignore_index=True参数确保合并后的 DataFrame 具有新的连续索引。如果读取文件时出现解析错误,pd.errors.ParserError则会捕获异常并打印错误消息。进度条会针对处理的每个文件进行更新,最后在所有文件合并后关闭。
- for file in all_csv_files:
- try:
- df = pd.read_csv(file)
- merged_data = pd.concat([merged_data, df], ignore_index=True)
- except pd.errors.ParserError as e:
- print(f"解析文件 {file} 时出错:{e}")
- progress_bar.update(1)
-
- progress_bar.close()
在本节中,该output_file变量指定保存合并数据的文件路径。然后使用该方法将DataFramemerged_data保存到新的 CSV 文件中to_csv(),并index=False排除输出文件中的索引列。最后,打印一条成功消息。
- output_file = r'C:\Users\dell\Desktop\TRY\综合文件.csv'
- merged_data.to_csv(output_file, index=False)
- print("CSV files merged successfully!")
此代码从指定文件夹及其子文件夹中读取多个 CSV 文件,将它们合并到单个 DataFrame 中,并将合并的数据保存到新的 CSV 文件中,还处理了合并过程中潜在的解析错误。
例如要合并该文件下的所有csv文件,如图所示:
运行代码后总的csv文件将保存在该文件夹下:
- import pandas as pd
- import glob
- from tqdm import tqdm
-
-
-
- # 指定要合并的 CSV 文件所在的文件夹路径
- folder_path = r'C:\Users\dell\Desktop\TRY'
- # 获取所有子文件夹中的 CSV 文件路径
- all_csv_files = glob.glob(folder_path + '/**/*.csv', recursive=True)
-
-
-
- # 创建一个空的 DataFrame 用于存储合并后的数据
- merged_data = pd.DataFrame()
- # 获取文件总数
- total_files = len(all_csv_files)
- # 创建进度条
- progress_bar = tqdm(total=total_files, unit='file', desc='Merging CSV files')
- # 逐个读取并合并 CSV 文件
- for file in all_csv_files:
- try:
- df = pd.read_csv(file) # 读取 CSV 文件
- merged_data = pd.concat([merged_data, df], ignore_index=True) # 合并数据
- except pd.errors.ParserError as e:
- print(f"解析文件 {file} 时出错:{e}")
- # 更新进度条
- progress_bar.update(1)
- # 关闭进度条
- progress_bar.close()
-
-
- # 指定要保存合并后数据的输出文件路径
- output_file = r'C:\Users\dell\Desktop\TRY\综合文件.csv'
- # 保存合并后的数据到新的 CSV 文件
- merged_data.to_csv(output_file, index=False)
- print("CSV files merged successfully!")
'运行
当遇到单个文件夹的csv文件合并时,可以直接使用电脑的命令端指令合成,更加便捷
将所要合并的csv文件放在D盘中(注意直接放在D盘的第一路径下,不要新建文件夹),如下图所示的1.2.3文件:
按下 Win + R 键,然后在运行对话框中输入 "cmd",按下 Enter 键,进入终端
输入D: 切换到D盘
输入copy *.CSV all.csv,D盘中的all.csv就是合并完成的文件
下载地址:https://zh-cn.emeditor.com/download/
如果无法打开网站,可以连接vpn尝试下载,该编辑器可以秒开G级别的csv文件
EmEditor打开界面如下:
如有不足,欢迎留言指正交流哈!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。