Применение функции Size() в groupby вместе с параметром aggregate — Pandas

#pandas #numpy #dataframe #automation #pandas-groupby

#pandas #numpy #фрейм данных #автоматизация #pandas-groupby

Вопрос:

я хочу получить количество экземпляров при использовании функции groupby вместе с параметром agg

 Name    Country  X_Id   Value
Rahul   1          2      100
Rahul   1          2       50
Matthew 2          3      100
Matthew 1          1       25


Name    Country  X_Id    Value  Instances  
Rahul   1          2       50     2
Matthew 2          3      100     1
Matthew 1          1       25     1
  

Я использовал df.groupby(['SiteId', 'SubUnitId', 'CatId']).agg('mean').size() , но это не сработало

Комментарии:

1. Корректны ли входные данные? Не заменяется 2 на 3 ?

Ответ №1:

Использовать GroupBy.agg с именованной агрегацией:

 df.groupby(['Name', 'Country', 'X_Id']).agg(Value = ('Value', 'mean'),
                                            Instances = ('Value', 'size')) 
  

Комментарии:

1. пока функция code работает нормально для одного столбца.. что, если мне придется применить функцию agg для двух столбцов @jezrael

2. @Harishreddy — затем добавьте новые значения, например Instances = ('Value', 'size') , означает Instances , что это новое имя столбца, Value столбец обработки, size функция агрегирования.

3. Так что, если нужно col3 col4 с sum помощью col4 = ('col3','sum')