IMDB5000映画データセットデータ分析学習記録



Imdb 5000 Movie Dataset Data Analysis Learning Record



1.はじめに
映画が公開される前に、その映画が素晴らしい映画であるかどうかをどのように判断しますか?
この問題は、データセットの作成者を長い間悩ませてきました。多くの人々はあなたを連れて行くことの質を推定するために映画やテレビの批評家に頼っています。直感に頼る人もいますが、公開後は時間がかかります。合理的な映画レビューを得るには多くの時間がかかりますが、同時に、人々の直感は信頼できない場合があります。
2つの質問
1.人間は毎年何千本もの映画を作っています。映画評論家の直感に頼る以外に、素晴らしい映画を判断するためのより良い方法はありますか?
2.映画のポスターの登場人物と映画のレーティングには関係がありますか?
方法
この質問に答えるために、著者はIMDBで5000を超える映画データをクロールしました。クロールプロセス全体が完了するまでに2時間かかります。最後に、著者は5043から必要な28の変数を取得しました。映画と4906の映画の完全なデータは、66か国をカバーし、100年に及びます。 2399人のユニークな映画監督と何千人もの俳優や女優がいます。
28個の変数は次のとおりです。
画像

facenumber_in_poster:ポスターの顔の数
ディレクター名:ディレクター名
movie_title:映画のタイトル。
director_facebook_likes:Facebookでこのディレクターが好きな人の数
title_year:映画の年
期間:映画の期間
actor_1_name:男性ナンバーワンの名前
国:国
actor_1_facebook_likes:Facebookで男性ナンバーワンが好きな人の数
ジャンル:映画のテーマ
色:画面の色。
actor_2_name:2番目の男性の名前
アスペクト比:キャンバスの比率
actor_2_facebook_likes:Facebookで男性の2番目が好きな人の数
content_rating:映画のレーティング
plot_keywords:プロットキーワード
アクター_3_name:アクター番号3の名前
言語:言語
actor_3_facebook_likes:Facebookの俳優#3が好きな人の数
予算:制作費
cast_total_facebook_likes:Facebookでキャストされたいいねの総数
グロス:グロス興行収入
movie_facebook_likes:Facebookのいいねの数
movie_imdb_link:imdbアドレス
imdb_score:imdbのスコア
num_voted_users:投票に参加しているユーザーの数
num_critic_for_reviews:評論家によるレビューの数
num_user_for_reiews:ユーザーコメントの数
技術
データ分析の部分は主にPythonプログラミング言語に基づいており、データの並べ替えと統計分析のツールとしてパンダ、グラフィックスを作成するためのmatplotlib、およびTableauのデータ視覚化分析を使用しています。
データ照合
データの読み込み



import pandas as pd movies_df = pd.read_csv('movie_metadata.csv') print(movies_df.head())#Default first 5 lines print(movies_df.info())#DataFrame's concise summary print(movies_df.describe())#Return count mean std min max equivalent

データクリーニング-重複排除

movies_df= movies_df .drop_duplicates() print(movies_df.head())#Default first 5 lines print(movies_df.info ()) print(movies_df.describe ())

パンダには、重複値を処理するために特に使用される2つの関数、つまり重複関数とdrop_duplicates関数があります。 Duplicated関数は、データテーブル内の重複する値を見つけて表示するために使用されます。ブール値を返すSeries.drop_duplicates()は、重複する行がフィルタリングされること、つまり 'duplicate'であることを示し、デフォルトではすべての列が判断されます。もちろん、列が重複しているかどうかを判断するように指定することもできます。列内の重複データがある場合は、データの行全体が削除されます。複製された関数とdrop_duplicates関数は、デフォルトで最初の値の組み合わせを保持します。 take_last = Trueを渡して、最後のものを保持します。
データクリーニング-欠落値の処理



movies_df = movies_df .dropna() #By default, any rows with missing values ​​are lost. The missing data is filtered out and only contains non-empty data. Passing in the parameter'how='all' will only discard those rows that are all NAs. To discard columns, just pass in axis=1 That's it. #or movies_df = movies_df .fillna (movies_df ['duration'].mean())#Fill in missing data

ただそれに対処し、将来の改善に努めてください。
探索的分析
地域分析:

grouped = movies_df.groupby('country').size() print(grouped.sort_values( ascending=False ).head(10))#Sort by value print(grouped.sort_index())#Sort by index

要約すると、米国は3773のアドバンテージで第1位、英国は443で第2位、フランスは第154位、中国は第9位でした。

import matplotlib.pyplot as plt grouped = movies_df.groupby('country').size() grouped_head_10=grouped.sort_values( ascending=False ).head(10) print(grouped_head_10)#Sort by value print(grouped.sort_index())#Sort by index grouped.plot(kind = 'bar') plt.show() grouped_head_10.plot(kind = 'bar') plt.show()

画像
高品質の映画配給
トップ10の国と特定の数の高品質映画



movie_max=movies_df['imdb_score'].sort_values(ascending=False).head(10) print(pd.Index(movie_max )) movie_max1=movies_df.sort_values(['imdb_score'],ascending=False).head(10) #print(pd.Index(movie_max1 )) print(movie_max1) print(movie_max1[['movie_title','imdb_score']])

運転結果

movie_title imdb_score 1937 The Shawshank Redemption 9.3 3466 The Godfather 9.2 66 The Dark Knight 9.0 2837 The Godfather: Part II 9.0 4498 The Good, the Bad and the Ugly 8.9 339 The Lord of the Rings: The Return of the King 8.9 3355 Pulp Fiction 8.9 1874 Schindler's List 8.9 2051 Star Wars: Episode V - The Empire Strikes Back 8.8 683 Fight Club 8.8 movie_max_series=pd.Series(movie_max['imdb_score'].values,index = movie_max['movie_title']) print(movie_max_series) movie_max_series.plot(kind='bar') plt.show()

画像

年間の映画の数
今後の作業では、過去のデータに基づいて来年の映画の数を予測します。

grouped_year= movies_df.groupby('title_year').size() print(grouped_year) grouped_year.plot() plt.show()

画像
フォローアップコンテンツの更新を続ける