如何将mean()作为输入参数传递给Python中的另一个函数?

时间:2019-03-16 01:28:11

标签: python numpy python-3.6 pandas-groupby

我有需要按均值或中位数分组的数据。我想为此编写一个函数。这是我到目前为止尝试过的

def clean(data, met = np.mean):
    data_grouped = data.groupby(['zipcode','neighbourhood'], as_index=False).met()[['zipcode', 'neighbourhood','revenue']]
return data_grouped

这会引发错误

AttributeError: 'DataFrameGroupBy' object has no attribute 'met'

我该怎么办?

1 个答案:

答案 0 :(得分:1)

尝试一下:

您可以在最后将met更改为median(而不是mean,但是对我来说,它仅在我指定了实际的groupby方法(而不是使用numpy)。

另外,请注意met位于表达式的开头而不是结尾

def clean(data, met = pandas.core.groupby.groupby.SeriesGroupBy.mean):
    return met(data.groupby(['zipcode','neighbourhood'], as_index=False)['zipcode', 'neighbourhood','revenue'])

它在另一个数据集上为我工作