pandas agg () со средним значением (автономный или список) - PullRequest
0 голосов
/ 13 июля 2020

Я копаюсь в функции агрегатора pandas, работая с набором данных обзоров вин. Чтобы суммировать баллы, полученные от обозревателей вин, я заметил, что когда я использовал mean как отдельную функцию в agg ():

reviewer_mean_ratings = reviews.groupby('taster_name').points.agg('mean')

Результат выглядит следующим образом:

рецензент-рейтинги-выход

Заметил, что вывод имеет 2 столбца (по крайней мере, так он выглядит визуально ). Но

type(reviewer_mean_ratings) = pandas.core.series.Series

Это всего лишь 1 столбец с пробелом между именем и средней оценкой? Я запутался.

Также заметил, что я не могу отсортировать этот вывод в порядке убывания по средним оценкам. Вместо этого, если бы я использовал mean в качестве списка в agg (), тогда убывающий порядок работает с использованием метода sort_values ​​() позже.

Моя гипотеза заключается в том, что если Позже я хочу получить доступ к столбцу средних оценок, единственный способ сделать это - использовать в исходном запросе agg (['mean']) вместо agg ('mean'). Я где-то ошибаюсь?

Ответы [ 2 ]

0 голосов
/ 13 июля 2020

Обнаружено, что следующий оператор работает для получения порядка убывания с использованием 'mean' в качестве отдельной функции в методе agg ().

reviews.groupby('taster_name').points.agg('mean').sort_values(ascending=False)

т.е. не используйте "by" предложение в методе sort_values ​​().

0 голосов
/ 13 июля 2020

На выходе получается серия pandas, вроде как фрейм данных с одним столбцом и индексом. Чтобы получить фактические значения Серии, просто добавьте '.values':

reviewer_mean_ratings = reviews.groupby('taster_name').points.agg('mean').values

Это выведет значения в виде массива numpy.

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