Как вывести результат groupby для сортировки DataFrame?

Сохраняю результаты запроса из БД в DataFrame:

spent = pd.read_sql_query("SELECT * FROM spent", con)
payments = pd.read_sql_query("SELECT * FROM payments", con)

Теперь хочу отсортировать по столбцу с датами:

actual = payments.groupby(payments['ts'])

Вывод:

<pandas.core.groupby.generic.DataFrameGroupBy object at 0x0000020C754CAA90>.

Хочу вывести таблицу, а не это. Тот же вывод при печати этой переменной.

Что не так?


Ответы (1 шт):

Автор решения: MaxU

Метод df.groupby(...) возвращает объект типа DataFrameGroupBy, к которому нужно применять GroupBy функции/методы.

Сам по себе этот метод ничего не меняет (только подготавливает данные для группировки), поэтому нет смысла выводить его результат на печать, не применив ни одной функции к результату группировки.

PS из вопроса не совсем понятно, что вы хотите сделать - группировку или сортировку. Сортировка в Pandas делается так:

res = df.sort_values([<list of columns>])

но в случае чтения данных из БД имеет смысл сделать это на стороне БД:

payments = pd.read_sql_query("SELECT * FROM payments ORDER BY ...", con)
→ Ссылка