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

如何用Pandas合并多个.csv文件并保留原始结构?

解决Pandas合并CSV文件后结构丢失的问题

你遇到的核心问题是在pd.read_csv里错误设置了sep='delimiter'参数——这个参数会让Pandas把字符串delimiter当成列分隔符,而你的CSV文件显然不是用这个字符串分隔的,所以Pandas无法正确识别列结构,只能把整行内容塞进单个列里,表头也变成了所有原始列名的拼接文本。

修正后的合并代码

直接去掉错误的分隔符设置(如果你的CSV是标准逗号分隔格式,pd.read_csv默认会自动识别),代码如下:

import pandas as pd
import glob

# 获取所有目标CSV文件
total_files = glob.glob("something*.csv")
data_frames = []

for csv_file in total_files:
    # 读取单个CSV,使用默认的逗号分隔(如果是其他分隔符,比如分号,改成sep=';')
    df = pd.read_csv(csv_file, encoding="utf-8")
    data_frames.append(df)

# 合并所有DataFrame并重置索引
merged_df = pd.concat(data_frames, ignore_index=True)

# 保存合并后的文件,不要写入索引列
merged_df.to_csv("output.csv", index=False)

为什么之前的代码会出错?

你之前的代码里sep='delimiter'是完全错误的用法:

  • sep参数需要传入实际的列分隔符(比如逗号,、制表符\t、分号;等),而不是字符串delimiter。
  • 当Pandas找不到指定的分隔符时,会把每一行当成一个单独的列,表头自然就变成了第一行的全部内容拼接。

处理TEXT列内容过长的显示问题

如果想在查看数据时完整显示TEXT列的长内容,可以添加以下Pandas显示设置:

# 设置显示最大列宽,-1表示显示全部内容
pd.set_option('display.max_colwidth', -1)
# 可选:设置显示所有列(如果列数较多时)
pd.set_option('display.max_columns', None)

这样无论是单独查看单个CSV还是合并后的DataFrame,TEXT列的内容都能完整展示了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:52:55