Иногда при работе с данными в 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.
Добавить комментарий