Группировка и count () с псевдонимом и «нормальным» фреймом данных: pyhton pandas против mssql - PullRequest
1 голос
/ 05 апреля 2019

Исходя из среды SQL, я изучаю некоторые вещи в Python Pandas.У меня есть вопрос относительно группировки и агрегатов.

Скажем, я группирую набор данных по возрастной категории и считаю различные категории.В MSSQL я написал бы следующее:

SELECT AgeCategory, COUNT(*) AS Cnt
FROM TableA
GROUP BY AgeCategory
ORDER BY 1

Набор результатов представляет собой «нормальную» таблицу с двумя столбцами, второй столбец я назвал Count.

Когда я хочу сделать эквивалент вПанды, объект groupby отличается по формату.Так что теперь я должен сбросить индекс и переименовать столбец в следующей строке.Мой код будет выглядеть так:

grouped = df.groupby('AgeCategory')['ColA'].count().reset_index()
grouped.columns = ['AgeCategory', 'Count']
grouped

Мой вопрос: можно ли это сделать за один раз?Похоже, я переусердствовал, но мне не хватает опыта.

Спасибо за любой совет.

С уважением, М.

1 Ответ

1 голос
/ 05 апреля 2019

Использовать параметр name в DataFrame.reset_index:

grouped = df.groupby('AgeCategory')['ColA'].count().reset_index(name='Count')

Или:

grouped = df.groupby('AgeCategory').size().reset_index(name='Count')

Разница составляет GroupBy.count, исключая пропущенные значения, GroupBy.size, не.


Подробнее о агрегации в пандах .

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