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

如何合并多份列名不同的CSV文件且保留原有列名?

问题原因

你使用的pd.concat()方法中设置了ignore_index=True参数,当沿列方向(axis=1)合并数据时,该参数会强制重置列索引,直接覆盖所有CSV文件的原有列名,替换为从0开始的数字序列,这是你遇到问题的核心原因。

修改方案

仅需要删除pd.concat()中的ignore_index=True参数即可保留原有列名,同时建议在导出CSV时添加index=False参数,避免生成多余的行号列,修改后代码如下:

import os, glob
import pandas as pd
path = ""
all_files = glob.glob(os.path.join(path, "*.csv"))
df_from_each_file = (pd.read_csv(f, sep=',') for f in all_files)
df_merged = pd.concat(df_from_each_file, axis=1)
df_merged.to_csv("merged.csv", index=False)

补充场景(可选)

如果后续存在不同CSV文件列名重复的情况,可以在读取文件时给每个文件的列添加对应文件名前缀,避免列名冲突,参考代码如下:

import os, glob
import pandas as pd
path = ""
all_files = glob.glob(os.path.join(path, "*.csv"))
df_list = []
for f in all_files:
    df = pd.read_csv(f, sep=',')
    # 提取无后缀的文件名作为列前缀
    file_base_name = os.path.splitext(os.path.basename(f))[0]
    df = df.add_prefix(f"{file_base_name}_")
    df_list.append(df)
df_merged = pd.concat(df_list, axis=1)
df_merged.to_csv("merged.csv", index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 15:45:03