сортировка нескольких столбцов, сгруппированных по фрейму данных - PullRequest
0 голосов
/ 13 марта 2020

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

Так что мой результат должен выглядеть примерно так:

Южная Америка: Венесуэла 333, Бразилия 245, Парагвай 213

и тому подобное для других континентов (не хочу смешивать страны разных континентов!)

Создание сгруппированных данных без сортировки довольно просто, как показано ниже:

ddf = pd.read_csv(drinks.csv)
grouped_continent_and_country = ddf.groupby(['continent', 'country'])
print(grouped_continent_and_country['beer_servings'].mean())

но как выполнить сортировку ??

Большое спасибо.

1 Ответ

0 голосов
/ 13 марта 2020

В этом случае вы можете просто отсортировать значения по 'continent' и 'beer_servings' без применения .mean ():

ddf = pd.read_csv('drinks.csv')

#sorting by continent and beer_servings columns
ddf = ddf.sort_values(by=['continent','beer_servings'], ascending=True)

#making the dataframe with only needed columns
ddf = ddf[['continent', 'country', 'beer_servings']].copy()

#exporting to csv
ddf.to_csv("drinks1.csv")

Выходной фрагмент:

continent, country, beer_servings

...

Африка, Ботсвана, 173

Африка, Ангола, 217

Африка, Южная Африка, 225

Африка, Габон, 347

Африка, Намибия, 376

Азия, Афганистан, 0

Азия, Бангладеш sh, 0

Азия, Северная Корея, 0

Азия, Иран, 0

Азия, Кувейт, 0

Азия, Мальдивские о-ва, 0

...

...