Pandas: Как построить общий бюджет фильма IMDB в сравнении с отдельным жанром в пандах? - PullRequest
0 голосов
/ 02 сентября 2018

Это на самом деле дополнительный вопрос к моему предыдущему вопросу.

панд: Как построить круговую диаграмму для количества фильмов в зависимости от жанра фильмов IMDB в пандах?

В этом вопросе мы наметили количество уникальных жанров для фильмов. Мой вопрос: как получить 'budget' против 'genres' сюжет в pandas?

Вот пример кода:

import pandas as pd
import numpy as np 
%matplotlib inline

df = pd.DataFrame({'movie' : ['A', 'B','C','D'],
                   'budget': [1000, 2000, 3000, 4000],
                   'genres': ['Science Fiction|Romance|Family', 'Action|Romance',
                              'Family|Drama','Mystery|Science Fiction|Drama']},
                  index=range(4))
df

Здесь жанр Science Fiction|Romance|Family на самом деле три отдельных жанра.

* * * * * * * * * * * * * * * появляется в A и B, поэтому бюджет для жанра Science Fiction должен составлять 1000+4000=5000 и т. Д.

1 Ответ

0 голосов
/ 02 сентября 2018

Вот как вы можете определить общий бюджет для каждого жанра:

genres = (df.genres.str.split('|', expand=True)
            .stack()
            .to_frame(name='genre'))


genres.index = genres.index.droplevel(1)

Так genres становится:

        genre
0   Science Fiction
0   Romance
0   Family
1   Action
1   Romance
2   Family
2   Drama
3   Mystery
3   Science Fiction
3   Drama

Теперь выполните объединение и групповую загрузку, чтобы сначала получить информацию о бюджете, а затем сумму по жанру:

(genres.join(df['budget'])
       .groupby('genre')
       .sum()
       .plot(kind='bar'))

Выход:

enter image description here

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