標籤:

豆瓣電影TOP250數據分析

豆瓣電影TOP250數據分析

來自專欄數據小白熊的進階之路

一 思考與選擇

我本科就讀於地方院校英語專業。大二時,毅然決定自學數學,並最後來到帝都成為一名經濟學研究生。研究生三年,我都一直夢想成為一名外企人力,卻在畢業的時候,無意中走上了房地產數據分析師的道路。

經過兩年多的數據分析師工作,我意識到自身的許多不足,試圖通過各種渠道進行學習,藉以彌補自己知識,技能的不足。但是,在學了許多軟體,聽了許多課程,報了許多培訓班以後,我發現,之前的學習走向了誤區:相對比各種軟體,技能,模型的學習,我更應該專註於在工作,生活,學習中強化自己的分析思維。

因此,我希望通過知乎公眾號分享的方式記錄學習,鍛煉分析思維。

雖然,已有兩年多的房地產分析師經歷,但是,在對本行業的了解,對本職數據分析師工作的勝任方面,我仍有許多不足。我希望接下來能夠繼續在行業內紮根,努力成為一名優秀的房地產數據分析師。

二 數據獲取

最近的python數據學習過程中,一直以豆瓣數據為例進行爬取。因此,我在網上找了豆瓣TOP250電影的爬取代碼,通過運行這些代碼,爬取了豆瓣TOP250電影的詳細數據。

在這裡,我希望藉由這些數據進行一個初步的分析:

1.python爬取豆瓣電影TOP250數據

1)模塊安裝

安裝好python3.5以後

安裝 Jupyter Notebook:conda install jupyter

進入Notebook:jupyter notebook (一個互動式頁面,可以在上面輸入python代碼,直觀顯示運行效果)

這裡,我們用到了requests,BeautifulSoup,openpyxl等模塊。

輸入:pip install requests

pip install beautifulsoup4

pip install openpyxl

(每次安裝都必須在顯示successfully安裝完畢才能停止,如果沒有出現successfully,必須重新安裝。否則,運行代碼時會出現importerror)

重新安裝前必須卸載已有的模塊。

Pip uninstall requests

pip uninstall beautifulsoup4

pip uninstall openpyxl

2)爬取代碼

Jupyter ->new->Python3

在代碼框里輸入代碼

這是根據網路上提供的代碼:

import requests

import re

from bs4 import BeautifulSoup

import openpyxl

def get_movie_top250_name(soup):

targets = soup.find_all(span,class_="title") #用BeautifulSoup找尋一個內容為一個列表

targets_name = re.findall(r.*?title">(.*?)</span,str(targets)) #用正則表達式去掉標籤

for each in targets_name: #剔除targets_name當中的別名

if xa0 in each:

targets_name.remove(each)

return targets_name

def get_movie_top250_workers(soup):

targets = soup.find_all(p,class_="")

targets_workers = []

for each in targets:

targets_workers.append(each.text.replace(<p class="">,).replace(
,).replace(xa0,).replace(
,))

return targets_workers

def get_movie_top250_star(soup):

targets = soup.find_all(div, class_="star")

targets_star = re.findall(r<span class="rating_num" property="v:average">(.*?)</span>,str(targets))

return targets_star

def get_movie_top250_quote(soup):

targets = soup.find_all(p, class_="quote")

targets_quote = re.findall(r<span class="inq">(.*?)</span>,str(targets))

return targets_quote

def save_to_excel(name,workers,star,quote):

wb = openpyxl.Workbook()

ws =wb.active

ws[A1] = "電影名稱"

ws[B1] = "工作人員"

ws[C1] = "評分"

ws[D1] = "描述"

for i in range(len(name)):

result = [name[i],workers[i],star[i],quote[i]]

ws.append(result)

wb.save("豆瓣電影TOP250.xlsx")

def main():

numbers = 1

name = []

workers = []

star = []

quote = []

result = []

while numbers:

url = movie.douban.com/top250?{}&filter=.format(numbers-1)

headers = {User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36}

res = requests.get(url,headers = headers)

soup = BeautifulSoup(res.text, "html.parser")

name_1 = get_movie_top250_name(soup)

workers_1 = get_movie_top250_workers(soup)

star_1 = get_movie_top250_star(soup)

quote_1 = get_movie_top250_quote(soup)

for i in range(len(name_1)):

name.append(name_1[i])

workers.append(workers_1[i])

star.append(star_1[i])

quote.append(quote_1[i])

numbers += 25

if numbers > 250:

break

save_to_excel(name,workers,star,quote)

if __name__ == __main__:

main()

運行完以上代碼,生成豆瓣電影TOP250.xlsx表。

三 數據清洗

在現有數據前列加上列:排名。按照1-250對電影數據進行排名。

利用EXCEL工具欄,開始->查找—>替換功能,

利用EXCEL工具欄,數據->分列功能,拆分以上數據。

補充空缺值,處理異常值,數據規整,形成最終數據。

豆瓣電影TOP250數據分析

針對以上數據,提出以下問題:電影TOP250的分值分布?地區對優質電影產出的影響?高分電影偏愛何種題材?哪些演員和哪些導演高產高質量的電影?

解決問題:

1) TOP250電影的分值是分布?

250部電影的平均評分為8.8(十分制),最高評分為9.6(肖申克的救贖),最低評分為8.3(藍色大門)。8.7分出現次數最多,達47次。評分主要集中在8.6-8.8。

2) 地區對優質電影產出的影響?

優質電影產出排名前三的地區,美國,日本和香港。其中,美國在250部電影中佔122部,佔比48.8%。在排名前十的作品中佔6部,佔比60%。

3) 高分電影偏愛何種題材?

高分電影偏愛愛情和犯罪題材,其中,愛情題材電影250部佔62部,佔比24.8%。犯罪題材電影250部中佔45部,佔比18%。

4) 哪些演員和哪些導演高產高質量的電影?

250部高質量電影中佔比排名前三的導演是,克里斯托弗·諾蘭(7部),宮崎駿(7部),史蒂文·斯皮爾伯格(6)部。兩位美國導演,一位日本導演。

250部高質量電影中佔比排名前四的是,Tom·Hanks(6部),萊昂納多·迪卡普里奧(5部),馬特·達蒙(4部),伊桑·霍克(4部)。均為美國演員。

4.總結

豆瓣電影是國內比較權威的電影評分網站之一,其公布的電影TOP250能很好的代表大眾對以上250部優質電影的喜愛程度排名。

1) 在電影TOP250中,所有電影的平均分為8.8(十分制);8.7出現次數最多,為47次;評分主要集中在8.6-8.8分。

2) 在電影TOP250中,前三名為美國,日本,中國香港。其中,美國在250部電影中佔122部,佔比48.8%。在排名前十的作品中佔6部,佔比60%。

3) 在電影TOP250中,愛情和犯罪題材是大眾偏愛的題材,其中,愛情題材電影250部佔62部,佔比24.8%。犯罪題材電影250部中佔45部,佔比18%。

4) 在電影TOP250中,電影數量佔比排名前三的導演是,克里斯托弗·諾蘭(7部),宮崎駿(7部),史蒂文·斯皮爾伯格(6)部。兩位美國導演,一位日本導演。

電影數量佔比排名前四的演員是,Tom·Hanks(6部),萊昂納多·迪卡普里奧(5部),馬特·達蒙(4部),伊桑·霍克(4部)。全是美國演員。

美國既有眾多優秀的導演,又有眾多能夠完成優質電影的演員,毫無意外的,拍攝出了大量的在大眾心目中高質量的電影。

5.學習計劃

手上現有的2個課程,計劃分別在本周和國慶結束的第一周完成。

數據,分析,統計,SPSS,SQL等學習書籍在接下來會安排每天的閱讀。

菜鳥不可怕,只要努力夠,笨鳥/菜鳥都可以先飛。


推薦閱讀:

放過自己,給生活留白
柔性屏幕的時代即將來臨,手機尺寸會如何變化?
又到求職季的一些感悟
目睹了兩起飯圈鬧事,開始覺得自己以前很幼稚
六大商業模式,讀懂「互聯網+」

TAG:互聯網 |