You need to enable JavaScript to run this app. Pandas合并多个CSV文件出现Unnamed列、首行丢失该如何解决?
优惠活动
大模型
产品
解决方案
定价
更多

Pandas合并多个CSV文件出现Unnamed列、首行丢失该如何解决?

多相同格式CSV合并问题修复方案

问题根因

你遇到的首行丢失、出现Unnamed列或列名0的问题,核心是读入CSV时没有正确配置列名和索引参数,导致拼接时列匹配异常:

  • 未指定index_col=0时,A列的索引会被识别为普通数据列,列名不匹配时pandas自动生成Unnamed列补全
  • header参数配置和实际CSV结构不符时,第一个CSV的表头会被设为列名,后续CSV的表头会被当成普通数据行处理,导致首行丢失
  • 循环读入时未将每个DataFrame存入列表,直接拼接会出现数据覆盖或列对齐错误

修复代码

根据你的CSV是否带有表头选择对应代码即可:

情况1:所有CSV第一行是表头(例如第一行内容为索引,数值)

import pandas as pd
import glob

# 存储所有读入的DataFrame
df_list = []
for f in glob.glob('C:/~/*.csv'):
    # header=0 用第一行作为列名,index_col=0 用第一列作为索引
    df = pd.read_csv(f, header=0, index_col=0)
    df_list.append(df)

# 按行拼接所有DataFrame,ignore_index设为True可重置全局索引,设为False保留原有索引
combined_df = pd.concat(df_list, axis=0, ignore_index=False)

# 导出合并结果,utf-8-sig编码兼容Excel打开乱码问题
combined_df.to_csv('C:/~/combined_result.csv', index=True, encoding='utf-8-sig')

情况2:所有CSV没有表头,第一行直接是索引+数值数据

import pandas as pd
import glob

df_list = []
for f in glob.glob('C:/~/*.csv'):
    # header=None 不把第一行设为表头,手动指定列名避免出现列名`0`
    df = pd.read_csv(f, header=None, index_col=0, names=['索引', '数值'])
    df_list.append(df)

combined_df = pd.concat(df_list, axis=0, ignore_index=False)
combined_df.to_csv('C:/~/combined_result.csv', index=True, encoding='utf-8-sig')

注意事项

如果需要删除重复索引,可在拼接完成后加一行代码:combined_df = combined_df[~combined_df.index.duplicated(keep='first')]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 13:39:00