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

如何用Pandas加载分目录存储的CSV文件并拆分列完成数据分析

多目录CSV批量加载与Pandas分析实现方案

固定目录结构的匹配逻辑

针对A/B根目录下分设Time、Error子目录、固定文件名的存储结构,无需全局遍历扫描全目录,直接通过路径规则精准匹配目标文件,避免误读同名文件:

  • 匹配规则:任意一级A/B根目录/Time/task_time.csv、任意一级A/B根目录/Error/task_error.csv
  • 预处理要求:原始CSV为单列存储,加载后按实际分隔规则拆分为3列
  • 数据溯源:加载时标记每条数据的来源根目录、所属子目录类型,方便后续分组计算

分步代码实现

1. 导入依赖

import pandas as pd
from pathlib import Path

使用pathlib做路径处理,无需手动拼接字符串,兼容不同操作系统的路径格式。

2. 批量定位目标文件

# 替换为自己数据集所在的总父路径
base_dir = Path("./本地数据集总存储路径")
# 精准匹配所有符合规则的目标文件
target_files = [
    *base_dir.glob("A/Time/task_time.csv"),
    *base_dir.glob("B/Time/task_time.csv"),
    *base_dir.glob("A/Error/task_error.csv"),
    *base_dir.glob("B/Error/task_error.csv")
]

3. 加载并拆分单列CSV

data_fragments = []
for file_path in target_files:
    # 读取无表头的单列原始CSV
    raw_df = pd.read_csv(file_path, header=None, names=["raw_line"])
    # 拆分单列内容为3列,分隔符根据实际CSV的列间隔规则调整(如逗号、竖线、连续空格等)
    split_part = raw_df["raw_line"].str.split(
        pat=r",",  # 替换为自己实际的分隔符
        n=2,       # 拆分3列需要2次拆分动作
        expand=True
    )
    split_part.columns = ["col1", "col2", "col3"]
    # 追加数据溯源标记,避免多来源数据混淆
    split_part["source_root"] = file_path.parts[-3]
    split_part["category"] = file_path.parts[-2]
    data_fragments.append(split_part)

# 合并所有分片为可直接分析的总DataFrame
full_df = pd.concat(data_fragments, ignore_index=True)

4. 后续分析操作示例

以计算所有task_time.csv的数值列均值为例:

# 筛选所有Time类别的数据
time_dataset = full_df[full_df["category"] == "Time"]
# 转换目标计算列为数值类型,非数值内容自动转为缺失值,不干扰计算
time_dataset["col3"] = pd.to_numeric(time_dataset["col3"], errors="coerce")
# 计算列均值
time_avg = time_dataset["col3"].mean()

常见问题排查

  • 拆分列时出现值缺失:检查str.split的分隔符是否与实际CSV内容一致,含正则特殊字符的分隔符需要做转义处理
  • 溯源标记取值错误:打印file_path.parts查看路径分段的索引顺序,根据实际层级调整取值索引即可
  • 读取CSV丢失首行数据:无表头的原始CSV必须加header=None参数,否则第一行内容会被识别为列名
  • 均值计算结果异常:必须对拆分得到的数值列做类型转换,未转换的字符串类型会导致计算逻辑报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 09:15:03