豆瓣電影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 = https://movie.douban.com/top250?start={}&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:互聯網 |