Как передать mean () в качестве входного параметра другой функции в Python? - PullRequest
0 голосов
/ 16 марта 2019

У меня есть данные, которые мне нужно сгруппировать по среднему или среднему значению. Я хочу написать функцию для этого. Это то, что я пробовал до сих пор

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 Ответ

1 голос
/ 16 марта 2019

Попробуйте это:

вы можете изменить met на median в конце (вместо mean, но для меня это сработало только тогда, когда я указал действительные groupby методы (вместоиспользуйте numpy s).

Также обратите внимание, что met идет в начале, а не в конце выражения

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

Это сработало для меня в другом наборе данных

...