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

使用sort_values排序DataFrame时遇TypeError: unhashable type: 'Series'错误

解决pandas sort_values报错TypeError: unhashable type: 'Series'

问题重现

执行以下代码时触发错误:

df=df.sort_values(by=['name', 'ID'])

尝试添加reset_index后仍报错:

df=df.sort_values(by=['name', 'ID']).reset_index(drop=True)

报错信息:

TypeError: unhashable type: 'Series'

注:涉及的DataFrame为21000行×19列。

原因分析

这个错误的核心原因是by参数指定的name或ID列中,存在不可哈希的元素类型(比如列表、字典、嵌套Series等),pandas在排序时无法对这类元素进行哈希比较。

解决步骤

  • 先排查列内容类型,确认问题列:
    # 检查name列的元素类型
    print(df['name'].apply(type).unique())
    # 检查ID列的元素类型
    print(df['ID'].apply(type).unique())
    
  • 根据排查结果处理列内容:
    • 如果是列表/字典这类嵌套结构,可转为字符串:
      df['name'] = df['name'].astype(str)
      df['ID'] = df['ID'].astype(str)
      
    • 如果是嵌套Series,可提取其标量值(假设每个嵌套Series只有一个值):
      df['name'] = df['name'].apply(lambda x: x.iloc[0])
      df['ID'] = df['ID'].apply(lambda x: x.iloc[0])
      
  • 处理完成后重新执行排序:
    df = df.sort_values(by=['name', 'ID']).reset_index(drop=True)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 02:01:11