AttributeError: Невозможно получить доступ к вызываемому атрибуту reset_index объектов DataFrameGroupBy, попробуйте использовать метод apply - PullRequest
0 голосов
/ 22 мая 2018

Я очень новичок в пандах и пытаюсь использовать групповое.У меня есть 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()

Ответы [ 3 ]

0 голосов
/ 21 февраля 2019

вы можете использовать

grouped = df.sort_values(['col5'],ascending=False).groupby('col1',as_index = False).apply(lambda x: x.reset_index(drop = True))
grouped.reset_index().drop(['level_0','level_1'],axis = 1)

Обратитесь к этой ссылке на стекопоток для ясного объяснения с примером Как сбросить индексы DataFrame для всех групп за один шаг?

0 голосов
/ 09 мая 2019

Вы можете попробовать приведенный ниже код, у меня была похожая проблема.

grouped=data.groupby(['Colname'])
grouped.apply(lambda _df: _df.sort_values(by=['col_to_be_sorted']))

0 голосов
/ 22 мая 2018

Для 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...