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

使用pandas的df.loc按行索引名称读取DataFrame时触发KeyError的问题求助

使用pandas的df.loc按行索引名称读取DataFrame时触发KeyError的问题求助

我正在创建下面的DataFrame,并且给行设置了索引名称,想要通过列名和行名来读取数据,但一直遇到KeyError,想请大家帮忙看看问题出在哪里。

创建DataFrame的代码

# propulsion, data from étudeAZEF excel sheet
df_prop = pd.DataFrame({'Propulsion' : ['Helice s PF','Helice xL PF','Helice s PV', 'Helice xL PV','Helice sC/R PV'],'Mass [kg]' : [5, 10, 8, 25, 15],'Efficiency [%]' : [84, 80, 86, 82, 97],'Fixed cost [Euro]' : [2000, 4000, 5000, 6000, 7000],'Life [h]': [10000, 10000, 7000, 3000, 5000]})
df_prop.set_index('Propulsion')
hour_cost = df_prop['Fixed cost [Euro]']/df_prop['Life [h]']
df_prop['Cost per hour [Euro/h]'] = hour_cost

读取数据的代码

# get column index
ColumnName = "Efficiency [%]"
# get line index
LineName = "Helice xL PF"
# get datapoint
data = df_prop.loc[LineName,ColumnName]

遇到的错误

触发的错误信息:KeyError: 'Helice xL PF'

我打印了两个变量,结果是符合预期的:

print(ColumnName)
# 输出:Efficiency [%]
print(LineName)
# 输出:Helice xL PF

我已经确认ColumnName和LineName都是字符串类型,并且尝试了以下方法,但所有尝试都触发了相同的KeyError:

  • 把LineName的双引号改成单引号
  • 修改行名,使用不带空格的名称(比如将某行改为'Helice2',用这个名称读取仍报错)
  • 尝试读取其他行名(比如"Helice xL PV")
  • 尝试读取不同的列

备注:内容来源于stack exchange,提问作者Susanne Svensdotter

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 11:43:03