Группировать список по полю, которое, в свою очередь, является списком [дубликат]Python

Программы на Python
Anonymous
Группировать список по полю, которое, в свою очередь, является списком [дубликат]

Сообщение Anonymous »

У меня есть класс по фильмам:

Код: Выделить всё

class Movie:
def __init__(self,
title: str,
director: str,
actors: list[str]):
self.title = title
self.director = director
self.actors: list[str] = actors
И список с тремя примерами фильмов:

Код: Выделить всё

movies = [Movie('Barton Fink', 'Joel Coen', ['John Turturro', 'John Goodman', 'Judy Davis']),
Movie('The Big Lebowski', 'Joel Coen', ['Jeff Bridges', 'John Goodman', 'Steve Buscemi', 'John Turturro']),
Movie('The Big Easy', 'Jim McBride', ['Dennis Quaid', 'Ellen Barkin', 'John Goodman']),
]
Я использую Pandas, чтобы получить количество вхождений всех актеров:

Код: Выделить всё

John Goodman: 3
John Turturro: 2
Judy Davis: 1
...
Для режиссеров это работает так:

Код: Выделить всё

df = DataFrame([vars(m) for m in movies])
grouped = df.groupby(['director']).size().sort_values(ascending=False)
print(df)
А для актеров нет:

Код: Выделить всё

df = DataFrame([vars(m) for m in movies])
grouped = df.groupby(['actors']).size().sort_values(ascending=False)
print(df)
Ошибка: (, TypeError("нехешируемый тип: 'list'"), )

Как сгруппировать по актерам?

Подробнее здесь: https://stackoverflow.com/questions/786 ... -is-a-list

Вернуться в «Python»