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

pandas使用groupby时出现TypeError: unhashable type: 'list'如何解决?

报错原因

你代码中groupby的传参方式不符合pandas语法要求:
pandas.DataFrame.groupby()的第一个入参为分组字段的集合,你错误的把两个分组字段拆分为[para1]、[para2]两个独立入参传入,第二个入参本来是接收axis参数(要求为可哈希的单个值,如0/1/'index'),你传入了不可哈希的列表[para2],所以触发TypeError: unhashable type: 'list'报错。
除此之外你的函数还有两个需要修复的问题:

  • 函数直接调用全局变量df,复用性差,最好将df作为入参传入
  • 函数没有定义返回值,调用后无法得到统计结果
修复方案

调整groupby的传参逻辑,补充返回值,修复后的代码如下:

import pandas as pd

def mean_SEM_Count(df, para1, para2, value):
    grouped = df.groupby([para1, para2])[value]
    # 合并三个统计结果为一个DataFrame,重置索引后返回
    result = pd.DataFrame({
        'mean': grouped.mean(),
        'SEM': grouped.sem(),
        'count': grouped.count()
    }).reset_index()
    return result

调用示例:

# 先读取你的Excel数据
df = pd.read_excel("你的数据文件路径.xlsx")
# 调用函数得到统计结果
df1 = mean_SEM_Count(df, para1 = 'Time', para2 = 'drug', value = 'food')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 03:36:08