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

Python pandas读取CSV文件创建DataFrame如何去除多余索引列

问题根源

你遇到的问题是两个设置叠加导致的,不是真的多了一列数据:

  1. 你的原始CSV没有表头,pandas默认会把文件的第一行内容识别为列名,所以原本的第一行数据变成了表头,剩下的内容往下顺移了一行。你之前尝试的删列操作会误删真实的业务列,本质就是因为此时的列名本身就是原第一行数据,删第一列自然就丢了数据。
  2. 你以为多出来的第一列数字是pandas默认显示的行索引,不属于数据列,很多新手会把这个显示项误以为是额外的数据列。你之前用的index_col=False是用来取消将某列设为行索引的,没有命中问题根源,所以不生效。

解决方法

最优方案:读取时直接修正参数

读文件时明确指定文件没有表头,避免把第一行数据识别为列名即可:

# 方案1:自动生成数字列名(列名会被命名为0、1)
df = pd.read_csv('example.csv', header=None)

# 方案2:自定义列名,更适合后续处理,按需修改列名即可
df = pd.read_csv('example.csv', header=None, names=['文本列', '数值列'])

已读错数据的补救方案

如果你已经读入了数据不想重新读,可以用以下代码把列名转回第一行数据,再重置列名:

# 将当前列名追加为第一行数据
df.loc[-1] = df.columns
# 重置索引排序
df.index = df.index + 1
df = df.sort_index()
# 自定义新的列名
df.columns = ['文本列', '数值列']

导出时去掉行索引

如果后续导出CSV不想保留左边的行索引,只需要在导出时加参数即可:

df.to_csv('修正后的文件.csv', index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 19:45:08