В настоящее время я анализирую набор данных и имею столбцы с именами «Жанр», «Актер» и «Рейтинг».
С Жанром в качестве основного ключа, как мне получить 3 лучших актера из каждого жанра?
Я пытался сначала отсортировать рейтинги сначала в порядке убывания, а затем впоследствии, взяв 3 лучших исполнителя. Тем не менее, это приводит к беспорядку при попытке разобрать его через
data1 = data.groupby(["genre0", "Actor0"])[["Rating"]].mean().sort_values("Rating", ascending=False)
data2 = data.groupby(["genre0", "Actor1"])[["Rating"]].mean().sort_values("Rating", ascending=False)
data3 = data.groupby(["genre0", "Actor2"])[["Rating"]].mean().sort_values("Rating", ascending=False)
allgenres = pd.concat([data1, data2, data3])
allgenres.groupby("genre0").head(3)
Выходные данные должны отражать:
(Жанр) - (имена актеров) - (Топ 3 номинальных актера)
1012 * Е.Г. *
Action - Actor A - 10
Actor B - 9
Actor C - 8
Animation - Actor D - 10
Actor E - 9
Actor F - 8
I do not wish to reset the index and keep the ordering as it is, but group the results together.
Мои результаты