Фильтр группировки в Pandas

#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]