#pandas
#pandas
Вопрос:
я пытался применить фильтр к функции группировки, но у меня не получается правильный синтаксис. Обычно, как мы применяем фильтр к функции группировки в SQL, я ищу ту же функцию или функциональность в Pandas. Это мой запрос, и я хочу отфильтровать результат, где count>=5 home.groupby(‘location’).agg({‘price_per_sqft’:[‘mean’,’std’,’count’]})
Не могли бы вы показать мне способ фильтрации результата?
Ответ №1:
Сначала для избежания MultiIndex
добавления столбца price_per_sqft
после groupby
, а затем фильтра по boolean indexing
:
df = home.groupby('location')['price_per_sqft'].agg(['mean','std','count'])
df1 = df[df['count']>=5]
Или DataFrame.query
:
df1 = df.query("count>=5")
Другая идея заключается в использовании именованных агрегатов:
df = home.groupby('location').agg(avg=('price_per_sqft', 'mean'),
std=('price_per_sqft', 'std'),
counts=('price_per_sqft', 'count'))
df1 = df[df['counts']>=5]