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

Python从Excel提取数据异常:CSV索引未指向指定列

问题原因
  • 类型不匹配:从list.csv读取的列索引值默认是字符串类型,而Excel行数据(不管用openpyxl还是pandas处理)的列索引需要整数。直接用字符串i[6]作为索引,会被代码错误解析,比如当成列名或者固定位置,导致取到错误的列(你这里正好取到第7列,说明i[6]的字符串值刚好对应了这个位置的索引)。
  • 索引规则混淆:如果CSV里存的是Excel原生的1开始列索引(比如B列记为2),但你用的工具是0开始索引(比如pandas的iloc),没做转换的话也会取错列。
解决方法
  1. 转换索引类型:把CSV读取的索引值转为整数后再使用,示例代码:
    # 假设i是CSV的一行数据(比如csv.reader读取的列表)
    stock_col_idx = int(i[6])
    # 再用转换后的整数索引取Excel行j的对应列
    stock = j[stock_col_idx]
    
  2. 对齐索引规则:
    • 如果CSV里的列索引是Excel原生的1开始编号(比如B列记为2),而你用pandas的iloc(0开始),需要减1修正:
      stock_col_idx = int(i[6]) - 1
      stock = j.iloc[stock_col_idx]
      
    • 如果用openpyxl(1开始索引),直接用转换后的整数即可,无需调整。
  3. 调试验证:加打印语句确认索引值的类型和实际值,比如:
    print(f"CSV读取的库存索引:{i[6]},类型:{type(i[6])}")
    
    确保转换后的整数和你预期的列位置一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 13:34:58