You need to enable JavaScript to run this app. 如何导入文件夹下所有CSV文件并按文件名前缀自动分组
优惠活动
大模型
产品
解决方案
定价
更多

如何导入文件夹下所有CSV文件并按文件名前缀自动分组

实现方案

你当前的代码缺少文件名和对应DataFrame的关联逻辑,调整后可同时满足按前缀分组和新增前缀列的需求,推荐优先用字典存储分组结果,比动态生成大量独立列表变量更易维护:

import os
import glob
import pandas as pd

# 路径前加r防止Windows系统路径转义报错
path1 = r'D:\folder'
all_files1 = glob.glob(path1 + "/*.csv")
all_files1.sort(key=os.path.getmtime)

# 分组存储容器:key为文件名前缀,value为对应4个DataFrame的列表
grouped_df_dict = {}
# 可选:全量合并表,已自带前缀列可直接筛选
total_df = pd.DataFrame()

for filename in all_files1:
    # 提取文件名前缀(取下划线前的字符串)
    file_basename = os.path.basename(filename)
    file_prefix = file_basename.split("_")[0]
    
    # 读取文件并新增前缀列
    df = pd.read_csv(filename, index_col=None)
    df["file_prefix"] = file_prefix
    
    # 按前缀分组存入字典
    if file_prefix not in grouped_df_dict:
        grouped_df_dict[file_prefix] = []
    grouped_df_dict[file_prefix].append(df)
    
    # 可选:合并到全量表
    total_df = pd.concat([total_df, df], ignore_index=True)

使用说明

  • 要获取前缀为ABC的DataFrame列表,直接调用grouped_df_dict["ABC"]即可,效果和你需要的LIST_ABC完全一致
  • 每个DataFrame都新增了file_prefix列,后续需要筛选对应前缀数据时,直接对全量表total_df按该列筛选即可,无需单独遍历分组列表
  • 如果你确实需要生成LIST_XXX格式的独立变量,可以追加以下代码(不推荐,字典方案的遍历、检索效率更高):
for prefix, df_list in grouped_df_dict.items():
    globals()[f"LIST_{prefix}"] = df_list

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 16:09:02