【问题标题】:TypeError: unhashable type: 'list' when creating a new definitionTypeError:不可散列的类型:创建新定义时的“列表”
【发布时间】:2022-01-01 16:31:15
【问题描述】:

我正在创建一个定义来计算参数 1、参数 2 和值的平均值、sem 和计数。每个 .mean()、.sem()、.count()、.groupby() 都来自 pandas 库。

def mean_SEM_Count(para1,para2,value):
    mean=df.groupby([para1],[para2])[value].mean()
    SEM=df.groupby([para1],[para2])[value].sem()
    COUNT=df.groupby([para1],[para2])[value].count()

所以当我使用这个定义时,我可以从来自 Excel 工作表的数据框 (df) 中调用每个 (para1, para2, value) 的值

例子:

df1 = mean_SEM_Count(para1 = 'Time', para2 = 'drug', value = 'food')

但我收到以下错误:

TypeError: unhashable type: 'list'

我做错了什么?

【问题讨论】:

  • df.groupby([para1],[para2])更改为df.groupby([para1,para2])

标签: python pandas dataframe typeerror function-definition


【解决方案1】:

有必要的改变:

df.groupby([para1],[para2])

到:

df.groupby([para1,para2])

顺便说一句,这里只能使用GroupBy.agg

out = df.groupby([para1,para2])[para3].agg(['mean','sem','count'])

【讨论】:

    猜你喜欢
    • 2015-01-07
    • 2018-12-26
    • 2020-03-28
    • 1970-01-01
    • 2016-03-16
    • 1970-01-01
    • 2012-10-27
    • 2019-01-29
    • 2012-02-19
    相关资源
    最近更新 更多