Вы действительно должны использовать:
df.groupby("Director")["IMDB Rating"].mean()
Но если бы вы делали это в зацикленном формате без использования функций pandas, вы могли бы сделать это таким образом. Вы просто проводите l oop через каждого уникального режиссера и создаете два массива, сохраняющих:
- сумму оценок, деленную на количество фильмов (то есть средний рейтинг).
- имя директора
Затем используйте эти два массива и создайте новый pandas фрейм данных.
directors_unique = []
for i in movies_converted.Director:
if i not in directors_unique:
directors_unique.append(i)
list_directors = []
list_ratings = []
for director in directors_unique:
list_directors.append(director)
list_ratings.append(sum(movies_converted[movies_converted["Director"] == director]["IMDB Rating"])/len(movies_converted[movies_converted["Director"] == director]))
director_rating = pd.DataFrame({"Director":list_directors, "Average IMDB Rating":list_ratings})