Как сравнить значения в двух данных - PullRequest
0 голосов
/ 11 января 2019

У меня есть Pandas DataFrame (tmdb_df) с данными о фильмах (из TMDB). В одном из столбцов, «жанр», есть список жанров, применимых к этому фильму, разделенных знаком «|». DataFrame также содержит доход, популярность, рейтинги и т. Д. Я хочу иметь возможность просматривать эти показатели по жанрам.

Пример tmdb_df['genres'].head():

0    Action|Adventure|Science Fiction|Thriller
1    Action|Adventure|Science Fiction|Thriller
2           Adventure|Science Fiction|Thriller
3     Action|Adventure|Science Fiction|Fantasy
4                        Action|Crime|Thriller 

Я начал с создания нового DataFrame со всеми уникальными жанрами.

Код:

all_genres = tmdb_df['genres'].str.split("|", expand=True)
all_genres.rename(columns=lambda x: "col" + str(x+1), inplace=True)

unique_genres = pd.DataFrame({'genres': pd.unique(all_genres[['col1', 'col2','col3', 'col4','col5']].values.ravel('K'))})
unique_genres.sort_values('genres', inplace=True)
unique_genres.reset_index(inplace=True)
unique_genres.drop(columns='index', inplace=True)

unique_genres.head()

Выход:

    genres
0   Action
1   Adventure
2   Animation
3   Comedy
4   Crime

Теперь я хотел бы сделать некоторую сводную статистику, чтобы узнать, как часто встречается каждый жанр, средние рейтинги и т. Д. Я знаю, что мне нужно сравнить значения в обоих фреймах данных, но я не могу этого сделать. Я пробовал различные циклы, но получаю ошибки.

Пример:

for row in tmdb_df.itertuples():
    if unique_genres['genres'].str.contains(row[14]):
        print("true")

Ошибка:

ValueError: Значение истинности Серии неоднозначно. Используйте a.empty, a.bool (), a.item (), a.any () или a.all ().

Стек очень помог мне в этом, но я застрял на этом этапе. Заранее благодарю за помощь!

Редактировать: Вот полный кадр данных tmdb_df, если это поможет.

+---+--------+-----------+------------+-----------+------------+------------------------------+---------------------------------------------------+---------------------------------------------------+------------------+-------------------------------+-----+---------------------------------------------------+---------+-------------------------------------------+---------------------------------------------------+--------------+------------+--------------+--------------+-------------+--------------+
|   |   id   |  imdb_id  | popularity |  budget   |  revenue   |        original_title        |                       cast                        |                     homepage                      |     director     |            tagline            | ... |                     overview                      | runtime |                  genres                   |               production_companies                | release_date | vote_count | vote_average | release_year | budget_adj  | revenue_adj  |
+---+--------+-----------+------------+-----------+------------+------------------------------+---------------------------------------------------+---------------------------------------------------+------------------+-------------------------------+-----+---------------------------------------------------+---------+-------------------------------------------+---------------------------------------------------+--------------+------------+--------------+--------------+-------------+--------------+
| 0 | 135397 | tt0369610 |  32.985763 | 150000000 | 1513528810 | Jurassic World               | Chris Pratt|Bryce Dallas Howard|Irrfan Khan|Vi... | http://www.jurassicworld.com/                     | Colin Trevorrow  | The park is open.             | ... | Twenty-two years after the events of Jurassic ... |     124 | Action|Adventure|Science Fiction|Thriller | Universal Studios|Amblin Entertainment|Legenda... | 6/09/15      |       5562 |          6.5 |         2015 | 137999939.3 | 1.392446e+09 |
| 1 |  76341 | tt1392190 |  28.419936 | 150000000 |  378436354 | Mad Max: Fury Road           | Tom Hardy|Charlize Theron|Hugh Keays-Byrne|Nic... | http://www.madmaxmovie.com/                       | George Miller    | What a Lovely Day.            | ... | An apocalyptic story set in the furthest reach... |     120 | Action|Adventure|Science Fiction|Thriller | Village Roadshow Pictures|Kennedy Miller Produ... | 5/13/15      |       6185 |          7.1 |         2015 | 137999939.3 | 3.481613e+08 |
| 2 | 262500 | tt2908446 |  13.112507 | 110000000 |  295238201 | Insurgent                    | Shailene Woodley|Theo James|Kate Winslet|Ansel... | http://www.thedivergentseries.movie/#insurgent    | Robert Schwentke | One Choice Can Destroy You    | ... | Beatrice Prior must confront her inner demons ... |     119 | Adventure|Science Fiction|Thriller        | Summit Entertainment|Mandeville Films|Red Wago... | 3/18/15      |       2480 |          6.3 |         2015 | 101199955.5 | 2.716190e+08 |
| 3 | 140607 | tt2488496 |  11.173104 | 200000000 | 2068178225 | Star Wars: The Force Awakens | Harrison Ford|Mark Hamill|Carrie Fisher|Adam D... | http://www.starwars.com/films/star-wars-episod... | J.J. Abrams      | Every generation has a story. | ... | Thirty years after defeating the Galactic Empi... |     136 | Action|Adventure|Science Fiction|Fantasy  | Lucasfilm|Truenorth Productions|Bad Robot         | 12/15/15     |       5292 |          7.5 |         2015 | 183999919.0 | 1.902723e+09 |
| 4 | 168259 | tt2820852 |   9.335014 | 190000000 | 1506249360 | Furious 7                    | Vin Diesel|Paul Walker|Jason Statham|Michelle ... | http://www.furious7.com/                          | James Wan        | Vengeance Hits Home           | ... | Deckard Shaw seeks revenge against Dominic Tor... |     137 | Action|Crime|Thriller                     | Universal Pictures|Original Film|Media Rights ... | 4/01/15      |       2947 |          7.3 |         2015 | 174799923.1 | 1.385749e+09 |
+---+--------+-----------+------------+-----------+------------+------------------------------+---------------------------------------------------+---------------------------------------------------+------------------+-------------------------------+-----+---------------------------------------------------+---------+-------------------------------------------+---------------------------------------------------+--------------+------------+--------------+--------------+-------------+--------------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...