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

如何为CSV及Pandas DataFrame指定前11列的表头?

问题分析与解决

你的代码存在两个关键错误:

  • 切片范围错误:df.iloc[:, 1:11]选取的是第2列到第11列(共10列),而你需要的是前11列,正确的切片应该是df.iloc[:, 0:11](从第0列到第10列,共11列)。
  • 列名列表语法错误:['A', 'B', 'C', 'D', 'E', 'F' 'G', 'H', 'I', 'J', 'K']里的'F'和'G'之间缺少逗号,Python会自动把这两个字符串拼接成'FG',导致列名列表实际只有10个元素,和后续的列数不匹配,进而引发数据异常。

修正后的代码:

import pandas as pd

df = pd.read_csv("info/info.data", sep=',', header=None)
# 选取前11列(索引0到10)
df_11 = df.iloc[:, 0:11]
# 补全列名列表中的逗号
df_11.columns = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K']

如果你想在读取CSV时直接指定前11列的表头,也可以用更简洁的写法:

import pandas as pd

# 定义前11列的表头,剩余列用默认命名
headers = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K'] + [f'col_{i}' for i in range(11, 50)]
df = pd.read_csv("info/info.data", sep=',', names=headers)
# 单独提取前11列
df_11 = df.iloc[:, 0:11]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 20:40:24