Kaggle: 5000 TMDb電影數據分析實戰

文章從以下三個方面展開:

1. 項目介紹

2. 短視頻展示電影數據分析成果

3. 電影數據分析過程簡析


項目介紹

名稱:5000 TMDB Movie Dataset(來自Kaggle數據分析競賽平台)

目標:假如你作為一名業務分析顧問,你的客戶(某電影公司)想知道他們製作的電影在上映之前是否『成功』,需要你幫他們了解:

  1. 電影類型隨時間的變化? 哪些類型電影拍攝次數多?哪些類型電影賺錢?
  2. 票房(收入)與哪些可控因素相關?
  3. 原創電影與改編電影的情況對比?
  4. 電影突出的關鍵詞是哪些?
  5. 電影產地的佔比情況?
  6. 環球影業(Universal Pictures)和派拉蒙影業(Paramount Pictures)產齣電影的情況對比?

Q1: 為什麼只選擇5000部電影(實際4803部)

A: 第一點:

We (Kaggle) have removed the original version of this dataset per a DMCA takedown request from IMDB. In order to minimize the impact, were replacing it with a similar set of films and data fields from The Movie Database (TMDb) in accordance with their terms of use. The bad news is that kernels built on the old dataset will most likely no longer work.

第二點:

Some of the movies that we werent able to port over (a couple of hundred) were just bad entries. For example, this IMDB entry has basically no accurate information at all. It lists Star Wars Episode VII as a documentary.


電影數據分析成果展示

下面來看一段短視頻:

https://www.zhihu.com/video/967869129345126400


電影數據分析過程簡析

1. 提出問題(上面已經提出)

2. 理解數據

i. 獲取數據(在5000 TMDB Movie Dataset中下載數據集)

  • 下載下來的數據集tmdb_5000_movies.csv裡面包含每部電影的基本信息如電影名稱,收 入,上映時間,電影類型等等。
  • tmdb_5000_movies.csv裡面包含每部電影的演員cast和製作電影的全體人員crew。

ii. 導入數據

導入需要用到的分析包

(查看導入的數據方法之前的文章有介紹,在此不贅述。)

3. 數據清洗

i. 刪除不必要的信息和去重

查看數據後發現movies中有id 列和title 列,credits數據集中有movies_id 列和title 列。

證實相等後,刪除所有不必要的列,再合併數據集:

ii. 缺失值處理

查看數據集情況會發現runtime 列 和 release_date列 分別缺失2條和1條數據:

下面填補runtime 列的缺失值(首先找到缺失值在哪,再進行填補):

填補release_date列缺失值方法一樣,不贅述。

iii. 數據類型轉換

轉換為日期類型後,需要提取日期中的年份:

iv. 數據格式轉換

提取json格式(可以自行Google json格式的解壓辦法)中的有用信息(『name』欄位)是整個分析過程最大的難點,步驟如下:

對於其他json列如keywords, production_companies等解壓辦法和圖中genres一樣。

4. 數據可視化

4.1 電影類型隨時間的變化:

先得出有哪些類型,後面太長沒有截出。

接著把這些類型按照年份來進行匯總:

太長,只截取部分

畫圖:

4.2. 電影類型拍攝次數排名:

先統計:

再畫圖:

4.3. 電影類型利潤排名:

這一步藉助了Excel的透視表,V-lookup等功能

4.4. 票房(收入)與哪些可控因素相關:

可以看到在電影上映前,不會有vote_count, popularity 的數據,因此可以看到相關性最高的就是budget預算(成本)。

非常明顯的正相關趨勢

4.6. 原創電影與改編電影的情況對比:

先根據keywords中的『based on novel』欄位提取出來做為列,代表改編的小說:

現在我們還需要增加一個列欄位,也就是原創(not based on novel)

從上圖可以看出,based on novel 中為0的都代表了原創,即:

同樣的需要把兩者按年份進行匯總,然後繪圖:

畫餅圖:

4.7 電影突出的關鍵詞是哪些:

我首先是把keywords解壓,導出成文本後,再導入用wordcloud做的:

給你看下載出來的原圖:

4.8 電影產地的佔比情況:

把production_countries 解壓後得到如下圖:

由於我不知道如何把上面有兩個國家的一行變成二行同時保持年份不變,所以我還是把它導出用Excel分列做的。

分布情況用powerview做的

4.9. 環球影業(Universal Pictures)和派拉蒙影業(Paramount Pictures)產齣電影的情況對比:

同樣的需要提取出production_countries中的Universal Pictures和Paramount Pictures,並增加這兩列。

繪圖:

畫趨勢圖:


推薦閱讀:

【Python3網路爬蟲開發實戰】後續章節
財務一名,已經工作兩年,現在想轉數據分析師,有沒有r語言和python學習的教程?
[19] Python集合與字典
Tornado與flask的特點和區別有哪些?
SF 講堂推薦「使用 Python 和 TFlearn 深度學習的第一步」要開播啦

TAG:Python | 數據分析 | 數據可視化 |