You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为目录下多个CSV文件生成对应文件名的pandas profiling报告

多CSV文件分别生成Pandas Profiling报告方案

修复后完整代码

import glob
import os
import pandas as pd
from pandas_profiling import ProfileReport

# 输入输出路径使用原始字符串标记,避免Windows下反斜杠转义报错
input_path = r"D:\home_health_services_current_data\*.csv"
output_dir = r"D:\proj_report\profilerep"

# 自动创建输出目录,避免路径不存在报错
os.makedirs(output_dir, exist_ok=True)

csv_files = glob.glob(input_path)

for file_path in csv_files:
    # 单独读取当前CSV,不做全局合并
    current_df = pd.read_csv(file_path)
    # 提取原CSV的文件名(不含路径和后缀)
    csv_name = os.path.splitext(os.path.basename(file_path))[0]
    # 生成对应CSV的探查报告,标题和文件名都和原CSV匹配
    profile = ProfileReport(current_df, title=f"{csv_name} 数据探查报告", explorative=True)
    output_file = os.path.join(output_dir, f"{csv_name}_profiling.html")
    profile.to_file(output_file)

关键改动说明

  • 移除了原代码里全局合并的df变量,每次循环仅处理单个CSV文件,不会出现多文件数据混杂的问题
  • 新增了文件名提取逻辑,输出报告文件名和原CSV一一对应,不会出现后生成的报告覆盖之前文件的问题
  • 新增输出目录自动创建逻辑,避免输出文件夹不存在导致的写入报错
  • 所有路径统一使用r前缀标记为原始字符串,解决Windows系统下反斜杠被识别为转义字符的路径错误问题
  • 适配新版本语法,移除了已经被Pandas弃用的append方法(本需求不需要合并多文件数据,该逻辑本身冗余)

常见问题适配

如果运行时出现pandas_profiling库导入报错,是因为该库已更名为ydata-profiling,只需将导入语句替换为:
from ydata_profiling import ProfileReport 即可正常运行。

提示:如果CSV文件为GBK/GB2312编码,读取时需在pd.read_csv中添加encoding='gbk'参数避免乱码。

内容的提问来源于stack exchange,提问作者Mike

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 15:36:02