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

使用df.loc计算指定行均值报错:KeyError无法识别行名称

解决DataFrame指定行均值计算的KeyError问题

问题原因

你的DataFrame中Country是普通数据列,而非行索引。df.loc['Bahrain']是按行索引取值,当前行索引是0、1、2这类整数,自然找不到名为Bahrain的索引,所以触发KeyError。

两种解决方案

方案1:将Country设为行索引后计算

先把Country列设置为DataFrame的行索引,之后就能直接用loc定位目标行:

# 设置Country为行索引
df = df.set_index('Country')
# 计算Bahrain行的均值(单行对列求平均,axis可省略)
mean = df.loc['Bahrain'].mean()
# 输出类型:<class 'numpy.float64'>
print(type(mean))

方案2:不修改索引,用布尔筛选直接计算

如果不想改动原DataFrame的结构,通过布尔索引筛选目标行,再提取数值列计算均值:

# 筛选Country为Bahrain的行,提取数值列后求行均值,取第一个元素(因为筛选后是单行)
mean = df[df['Country'] == 'Bahrain'].select_dtypes(include='number').mean(axis=1).iloc[0]
# 输出类型:<class 'numpy.float64'>
print(type(mean))

补充说明

  • mean(axis=1)表示对每一行的列求平均,当你已经定位到单行时,axis参数可以省略,结果一致。
  • select_dtypes(include='number')能自动筛选所有数值型列,避免手动指定列索引(比如iloc[:,1:]),适配更通用的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 03:42:16