AttributeError: не удается получить доступ к атрибуту вызываемого объекта 'reset_index' объектов 'DataFrameGroupBy', попробуйте использовать метод 'apply'

Gingerbread спросил: 28 апреля 2018 в 08:28 в: python-3.x

Я очень новичок в пандах и стараюсь использовать groupby. У меня есть df с несколькими столбцами. Я хочу группировать определенный столбец, а затем сортировать каждую группу на основе другого столбца. Я получаю следующую ошибку AttributeError: Cannot access callable attribute 'reset_index' of 'DataFrameGroupBy' objects, try using the 'apply' method.

Любая помощь будет очень признательна!

Спасибо!

col1 |  col2 | col3 | col4 | col5
=================================
A    |   A1   | A2   | A3   | DATE1
A    |   B1   | B2   | B3   | DATE2

Я хочу группировать col1, а затем сортировать каждую группу с помощью col5, а затем делать reset_index, чтобы получить все строки фрейма данных.

Ниже приведен код, который я использовал. df.sort_values(['col5'],ascending=False).groupby('col1').reset_index()

1 ответ

jezrael ответил: 28 апреля 2018 в 08:35

Для groupby нужны некоторые функции агрегации, такие как mean, sum, max:

df.sort_values(['col5'],ascending=False).groupby('col1').mean().reset_index()

Или:

df.sort_values(['col5'],ascending=False).groupby('col1', as_index=False).mean()
Gingerbread ответил: 28 апреля 2018 в 08:51
Это уменьшает форму моего кадра данных из (124,14) до (9,6). Я хочу все 124 строки. Не могли бы вы помочь?
jezrael ответил: 28 апреля 2018 в 08:56
@Gingerbread - Можете ли вы добавить ожидаемый результат?