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

Python按特征分组CSV文件并合并导出代码修正求助

问题修正:按分组合并CSV并导出对应文件

原代码错误分析

原合并导出的循环存在以下问题:

  • 遍历dictionary.items()时,未拆分分组键和文件路径列表,直接将元组传入pd.read_csv(),导致参数类型错误
  • 使用全局的all_df存储数据,未按分组清空,会导致不同组的数据混在一起合并
  • 导出文件名固定为'value',无法生成与分组对应的目标文件
  • 每次循环都重复合并所有历史数据,造成数据冗余且逻辑错误

修正后的代码片段

替换原错误的循环部分,修正后的代码如下:

# 遍历分组字典的键和对应文件列表
for group_key, file_paths in dictionary.items():
    # 每个分组单独创建临时列表存储DataFrame
    group_dfs = []
    for file_path in file_paths:
        df = pd.read_csv(file_path)
        group_dfs.append(df)
    # 合并当前分组的所有DataFrame
    concat_df = pd.concat(group_dfs, axis=0, ignore_index=True)
    # 按分组键导出CSV文件
    concat_df.to_csv(f"{group_key}.csv", index=False)

完整修正代码

如果需要完整的可运行代码:

import glob
import pandas as pd

path = r'C:\Users\*.csv'
filelist = glob.glob(path)

dictionary = {}
for x in filelist:
    group = dictionary.get(x.split('_')[3], [])
    group.append(x)
    dictionary[x.split('_')[3]] = group

# 修正后的合并导出逻辑
for group_key, file_paths in dictionary.items():
    group_dfs = []
    for file_path in file_paths:
        df = pd.read_csv(file_path)
        group_dfs.append(df)
    concat_df = pd.concat(group_dfs, axis=0, ignore_index=True)
    concat_df.to_csv(f"{group_key}.csv", index=False)

修正关键点说明

  • 遍历字典时同时获取分组键和对应文件路径列表,明确每个分组的处理对象
  • 每个分组使用独立的group_dfs列表存储数据,避免不同分组的数据互相干扰
  • 使用f-string生成导出文件名{group_key}.csv,确保每个分组导出对应名称的文件
  • 读取完当前分组所有文件后再执行合并,逻辑更清晰且避免重复合并操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 05:45:36