Pandas GroupBy.agg () выбрасывает TypeError: aggregate () отсутствует 1 обязательный позиционный аргумент: 'arg' - PullRequest
1 голос
/ 30 июня 2019

Я пытаюсь создать несколько агрегатов для одного поля. Я работаю в пандах, в python3.7. Синтаксис выглядит довольно простым на основании документации:

https://pandas -docs.github.io / панды-документы-Трэвис / user_guide / groupby.html # именованных агрегация

Я не понимаю, почему я получаю ошибку ниже. Может ли кто-нибудь указать на проблему и сказать, как ее исправить?

код:

qt_dy.groupby('date').agg(std_qty=('qty','std'),mean_qty=('qty','mean'),)

ошибка:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-62-6bb3aabf313f> in <module>
      5 
      6 qt_dy.groupby('date')\
----> 7 .agg(std_qty=('qty','std'),mean_qty=('qty','mean'))

TypeError: aggregate() missing 1 required positional argument: 'arg'

1 Ответ

2 голосов
/ 30 июня 2019

Похоже, вы пытаетесь использовать agg с Именованные агрегаты - Это поддерживаемая функция, начиная с v0.25 и выше ТОЛЬКО .

Для более старых версий вам нужно будет использовать формат списка кортежей:

qt_dy.groupby('date')['qty'].agg([('std_qty','std'), ('mean_qty','mean')])

Или, чтобы объединить несколько столбцов, словарь:

qt_dy.groupby('date').agg({'qty': [('std_qty','std'), ('mean_qty','mean')]})

Для получения более подробной информации, посмотрите мой ответ здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...