Python Pandas сортировка среднего столбца при использовании [groupby] - PullRequest
0 голосов
/ 13 октября 2019

Я использую Python Pandas и хотел бы отсортировать вывод по среднему столбцу таблиц ниже (я показал вывод, который я получаю, и желаемый вывод, который я хочу получить)

Яиспользуя функцию groupby в pandas для получения выходных данных, однако сортировка производится по столбцу count (см. ниже таблицу выходных данных), вместо этого я хочу отсортировать по столбцу YOB (см. требуемую выходную таблицу)

Кроме того, как сделатья рассчитываю средний год рождения для каждой страны.

import pandas as pd

xlpath= "C:/Users/Username/documents/Datafile.xlsx"

df = pd.read_excel(eval('xlpath'))

y = df.groupby('COUNTRY').YOB.value_counts(ascending=False)

print(y)



Output:

enter image description here

Desired Output:

enter image description here

Ждем ваших отзывов.

Спасибо

Ответы [ 2 ]

1 голос
/ 13 октября 2019

Предполагая, что вам не нужно упорядочивать столбец "Страна" (поскольку вы не указали это в вопросе), вот один из способов добиться подсчета по каждой стране, группировке по годам, сохраняя годы в порядке возрастания:

df2 = df.groupby(["Country", "YOB"]).count()
df2 = df2.sort_values(["Country","YOB"], ascending=[True, True])
print(df2)

или в одну строку:

print(df.groupby(["Country", "YOB"]).count().sort_values(["Country","YOB"], ascending=[True, True]))
0 голосов
/ 13 октября 2019

Один из способов, которым вы можете воспользоваться, - это отсортировать кадр данных по YOB, прежде чем применять groupby.

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