Создайте новый DataFrame и заполните его столбцы без использования функций pandas, но с циклом for / while - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть original DataFrame с именем movies_converted. И я должен создать новый пустой DataFrame director_rating со столбцами Director и Average IMDB Rating и заполнить Director значениями из исходного столбца с тем же именем и заполнить Average IMDB Rating средними значениями в данной категории из оригинал IMDB Rating. Заполнение столбцов должно выполняться без использования функций pandas, но с использованием циклов for и while. Пожалуйста, покажи мне, как это сделать

1 Ответ

2 голосов
/ 04 февраля 2020

Вы действительно должны использовать:

df.groupby("Director")["IMDB Rating"].mean()

Но если бы вы делали это в зацикленном формате без использования функций pandas, вы могли бы сделать это таким образом. Вы просто проводите l oop через каждого уникального режиссера и создаете два массива, сохраняющих:

  1. сумму оценок, деленную на количество фильмов (то есть средний рейтинг).
  2. имя директора

Затем используйте эти два массива и создайте новый 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})
...