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

使用pandas sort_values时已存在列仍触发KeyError求助

问题分析与解决

嘿,我太懂这种明明列存在却报KeyError的迷惑了!问题出在你对sort_values方法里axis参数的理解上——你完全搞反了它的作用方向。

咱们拆解下:

  • 当你设置axis=1时,sort_values是基于行的内容来排序列,这时候by参数需要传入的是行索引的标识(比如行号、行名),而不是列名。你传入了列名"Top",程序自然找不到对应的行,就抛出KeyError了。
  • 而你的需求明显是按"Top"列的值来排序行,这时候应该用默认的axis=0(这个参数可以直接省略,因为默认就是0),此时by参数才是指定用来排序的列名。

修正后的代码应该是这样:

temp_df = pd.DataFrame(temp, columns=["Top","Column number","Row number"])
# 省略axis参数(默认axis=0),按"Top"列的值排序行
temp_df = temp_df.sort_values(by=["Top"])

如果哪天你真的需要按行来排序列(比如按第一行的数值大小重新排列所有列),那才需要用axis=1,比如:

# 按索引为0的行的值排序所有列
temp_df = temp_df.sort_values(by=0, axis=1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:21:07