如何使用Pandas批量分析文件夹中CSV文件并仅导出结果至单个CSV
批量处理文件夹中多个CSV文件并汇总分析结果
实现思路
针对你的需求,我们可以通过遍历目标文件夹中的所有CSV文件,逐个计算指定指标,最后将所有文件的分析结果汇总到一个DataFrame并保存为单个CSV文件。这种方式比你原有的单个文件处理更高效,且结果更简洁(每个文件对应一行汇总数据)。
完整代码示例
import os import pandas as pd # 替换为你的目标文件夹路径 folder_path = "./your_csv_folder" # 初始化列表存储所有文件的分析结果 summary_results = [] # 遍历文件夹内的所有文件 for file_name in os.listdir(folder_path): # 仅处理CSV文件 if file_name.lower().endswith(".csv"): file_full_path = os.path.join(folder_path, file_name) try: # 读取CSV文件 df = pd.read_csv(file_full_path) # 计算各项指标 total_rows = len(df) unique_col1 = df["column1"].nunique() count_a_col2 = df["column2"].value_counts().get("A", 0) # 若'A'不存在则返回0 # 将当前文件的结果存入列表 summary_results.append({ "文件名": file_name, "总行数": total_rows, "column1唯一值数量": unique_col1, "column2中A类型数量": count_a_col2 }) except Exception as e: # 捕获异常,避免单个文件出错导致程序终止 print(f"处理文件 {file_name} 时发生错误: {str(e)}") # 将汇总结果转换为DataFrame summary_df = pd.DataFrame(summary_results) # 保存汇总结果到CSV文件(支持中文) summary_df.to_csv("所有文件分析汇总.csv", index=False, encoding="utf-8-sig")
代码说明
- 遍历文件夹:使用
os.listdir获取文件夹内所有文件,通过后缀筛选CSV文件。 - 指标计算:
len(df):获取文件总行数df['column1'].nunique():统计column1的唯一值数量df['column2'].value_counts().get('A',0):统计column2中'A'的出现次数,若'A'不存在则返回0(避免KeyError)
- 异常处理:添加
try-except块,确保单个文件处理失败时,程序能继续处理其他文件。 - 结果保存:将所有文件的汇总结果存入一个DataFrame,最后保存为单个CSV文件,使用
utf-8-sig编码保证中文内容正常显示。
内容的提问来源于stack exchange,提问作者Saga
相关产品推荐
相关产品推荐

