Получение минимума и максимума после использования группы - PullRequest
0 голосов
/ 13 марта 2020

Мой фрейм данных содержит столбцы с именами: Город , Линейка продуктов , Количество и ряд других, которые не важны в моей проблеме.

Я хотел бы найти, какие линейки продуктов имеют минимальное и максимальное среднее количество в каждом городе.

Я использовал функцию groupby. Вот мой код:

import pandas as pd
dataset = pd.read_csv('supermarket_sales.csv')
stats_product_line_by_cities = dataset.groupby(['City', 'Product line'])['Quantity'].mean()

Вывод выглядит примерно так

City       Product line          
Mandalay   Electronic accessories    5.745455
           Fashion accessories       4.790323
           Food and beverages        5.400000
           Health and beauty         6.037736
           Home and lifestyle        5.900000
           Sports and travel         5.193548
Naypyitaw  Electronic accessories    6.054545
           Fashion accessories       5.261538
           Food and beverages        5.590909
           Health and beauty         5.326923
           Home and lifestyle        5.444444
           Sports and travel         5.888889
Yangon     Electronic accessories    5.366667
           Fashion accessories       5.156863
           Food and beverages        5.396552
           Health and beauty         5.468085
           Home and lifestyle        5.707692
           Sports and travel         5.644068
Name: Quantity, dtype: float64

Это довольно удачный вывод. Теперь я хотел бы тянуть только те линии с минимумом и максимумом для каждого города. Как я могу это сделать?

1 Ответ

1 голос
/ 13 марта 2020

Давайте сделаем sort_values, groupby head + tail

g=stats_product_line_by_cities.sort_values().groupby(level=0)
out=pd.concat([g.head(1),g.tail(1)])
...