07 Июл 2023
2 мин
277

Конвертация вывода GroupBy из Series в DataFrame в Pandas

Иногда при работе с данными в Pandas возникает необходимость группировки данных по определенным критериям с помощью метода groupby(). Возвращаемым результатом

Содержание

Иногда при работе с данными в Pandas возникает необходимость группировки данных по определенным критериям с помощью метода groupby(). Возвращаемым результатом является объект GroupBy, который, хоть и обладает многими удобными методами для агрегации и трансформации данных, не всегда удобен для дальнейшей работы. В некоторых случаях удобнее конвертировать этот объект обратно в DataFrame.

Рассмотрим пример. Предположим, есть DataFrame, который содержит информацию о клиентах интернет-магазина:

import pandas as pd

df = pd.DataFrame({ 
    "Customer" : ["John", "Lena", "John", "Lena", "John"],
    "City" : ["New York", "London", "London", "New York", "New York"],
    "Sales" : [100, 200, 300, 400, 500]
})

После группировки данных по имени клиента и городу с подсчетом общей суммы продаж получается следующий результат:

grouped = df.groupby(["Customer", "City"]).sum()

Результат будет следующим:

               Sales
Customer City       
John     London   300
         New York 600
Lena     London   200
         New York 400

В результате имеем объект GroupBy, который содержит информацию о суммарных продажах для каждого клиента в каждом городе. Однако, для дальнейшей работы с данными может потребоваться конвертировать этот объект обратно в DataFrame.

Для этого достаточно использовать метод reset_index():

df_grouped = grouped.reset_index()

В результате получаем следующий DataFrame:

  Customer      City  Sales
0     John    London    300
1     John  New York    600
2     Lena    London    200
3     Lena  New York    400

Теперь данные представлены в привычном виде DataFrame и с ними можно работать так же, как и с обычным DataFrame.

Содержание

Добавить комментарий

Определи профессию по рисунку