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

Python使用pandas读取Excel切片报TypeError无效键错误怎么办

报错原因

pd.read_excel() 读取文件后返回的是pandas DataFrame对象,并非numpy数组,二者索引规则不通用。你写的[:, np.newaxis,2]是numpy的多维切片语法,直接传给DataFrame作为索引key时,DataFrame无法识别三维切片规则,就会抛出invalid key的类型错误。

修复方案

根据你的实际需求二选一即可:

  • 需要保留numpy升维(np.newaxis新增维度)的逻辑:先把DataFrame转为numpy数组,再执行切片操作
import pandas as pd
import numpy as np

data = pd.read_excel('<file path>PriceOdometerV3.xlsx')
# .to_numpy()是pandas官方推荐的数组转换方法,兼容pandas1.0及以上版本
df_X = data.to_numpy()[:, np.newaxis, 2]

# 旧版本pandas可以用.values属性实现相同效果
# df_X = data.values[:, np.newaxis, 2]
  • 仅需提取DataFrame中第3列(位置索引为2)的数据,不需要额外升维:直接用pandas原生的位置索引方法iloc取值即可
# 取所有行、位置索引为2的列,返回pandas Series对象
df_X = data.iloc[:, 2]

# 如果取完列之后还需要新增维度,可以在取数后转numpy再升维
# df_X = data.iloc[:, 2].to_numpy()[:, np.newaxis]

索引规则提示:pandas DataFrame按位置切片固定用iloc方法,按行列标签切片固定用loc方法,不要直接套用numpy的多维切片语法操作DataFrame。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 18:57:22