上一篇文章(Python爬蟲幫助解決挑選電影費時費力的煩惱),我們對騰訊視頻中的電影按照“豆瓣好評”的方式進行了數(shù)據(jù)爬蟲,獲取了大約5000部電影的詳情數(shù)據(jù),解決了選擇電影時比較浪費時間的問題。本篇文章將基于上一篇文章的數(shù)據(jù),來探究一下這5000部電影究竟怎么樣呢?對這5000部作品,該如何去做數(shù)據(jù)分析呢? 用數(shù)據(jù)說話,是數(shù)據(jù)分析的意義所在,整個數(shù)據(jù)分析的過程分為三步:
以下是具體步驟和代碼實現(xiàn): 數(shù)據(jù)讀取在上一篇文章中,我們已經(jīng)獲取了數(shù)據(jù),沒有看過的同學可以進行查看,數(shù)據(jù)包括全量電影數(shù)據(jù),更細粒度的拆解數(shù)據(jù)(年代與區(qū)域、類型與區(qū)域等),對于數(shù)據(jù)的采集,個人建議是盡量做到“全“、“細”,方便進行數(shù)據(jù)拆解與數(shù)據(jù)對比分析,對于電影數(shù)據(jù)的讀取就相對比較簡單了。 import pandas as pd##------------數(shù)據(jù)讀取--------------#全量數(shù)據(jù)film_all_data = pd.read_csv('all_data.csv')#電影與區(qū)域的關系film_area_data = pd.read_csv('film_area.csv')#電影與類型的關系film_type_data = pd.read_csv('film_type.csv')#大陸電影與類型的關系film_type_china_data = pd.read_csv('film_type_china.csv')#電影與年代的關系film_year_data = pd.read_csv('film_year.csv')#大陸電影與年代的關系film_year_data = pd.read_csv('film_year_china.csv') 數(shù)據(jù)預處理無論是做數(shù)據(jù)分析還是數(shù)據(jù)挖掘,數(shù)據(jù)預處理都是非常重要的一環(huán),在數(shù)據(jù)預處理階段,處理方法有很多,本文主要使用方法為:數(shù)據(jù)插補、臟數(shù)據(jù)刪除、數(shù)據(jù)格式轉(zhuǎn)換、數(shù)據(jù)行列轉(zhuǎn)換等,上述處理方法在之前文章中都有涉及。
數(shù)據(jù)可視化與數(shù)據(jù)分析我們使用pyecharts進行數(shù)據(jù)可視化,安裝命令pip install pyechars,下面進行數(shù)據(jù)可視化與數(shù)據(jù)分析。 我們使用pyecharts進行數(shù)據(jù)可視化,安裝命令pip install pyechars,下面進行數(shù)據(jù)可視化與數(shù)據(jù)分析。 代碼實現(xiàn): bar = Bar(init_opts=opts.InitOpts(width='750px', height='350px'))bar.add_xaxis(film_all_data_group['score_interval'].to_list())bar.add_yaxis('豆瓣好評',film_all_data_group['score_interval_num'].to_list())bar.set_global_opts(title_opts=opts.TitleOpts(title='騰訊電影庫影片分數(shù)分布'), visualmap_opts=opts.VisualMapOpts(max_=50), toolbox_opts=opts.ToolboxOpts()) 5000部電影中,VIP電影占比為55.7%,無需付費電影占比37.5%,VIP用券、獨播、付費總體占比為7%,這么多的好作品,沒有VIP會員的話,可能就沒福享受了。 代碼實現(xiàn)
全球電影優(yōu)秀作品人物 在全球電影創(chuàng)作優(yōu)秀作品的演員中,放眼望去都是外國人,仔細查看,還是有不少中國優(yōu)秀演員的身影,劉德華、周星馳、劉青云、洪金寶等,除了在詞云中看到的之外,周潤發(fā)、梁家輝、古天樂、李連杰的表現(xiàn)的也是可圈可點的。 代碼實現(xiàn) ##詞云def get_comment_word(df): # 集合形式存儲-去重 stop_words = set() print(stop_words) # 加載停用詞 cwd = os.getcwd() stop_words_path = cwd + '\\stop_words.txt' print(stop_words_path) with open(stop_words_path, 'r', encoding='ISO-8859-1') as sw: for line in sw.readlines(): stop_words.add(line.strip()) print(stop_words) # 添加停用詞 stop_words.add('主演') # 合并評論信息 df_comment_all = df['film_actor'].str.cat() # 使用TF-IDF算法提取關鍵詞 word_num = jieba.analyse.extract_tags(df_comment_all, topK=300, withWeight=True, allowPOS=()) print(word_num) # 做一步篩選 word_num_selected = [] # 篩選掉停用詞 for i in word_num: if i[0] not in stop_words: word_num_selected.append(i) else: pass return word_num_selectedkey_words = get_comment_word(film_all_data)key_words = pd.DataFrame(key_words, columns=['words','num']) key_words.head() 優(yōu)秀作品產(chǎn)生時間 從中國優(yōu)秀作品的趨勢圖來看,2016、2017年產(chǎn)生了較多優(yōu)秀的作品,與全球優(yōu)秀作品的趨勢基本是一致的,從上圖我們可以看出,隨著中國電影市場的迅速發(fā)展,優(yōu)秀作品在全球的占比權重在進一步增加。 代碼實現(xiàn)
總結(jié)本文從整體評分、付費類型、貢獻優(yōu)秀作品詞云、優(yōu)秀作品產(chǎn)生時間等不同視角來展示5000部電影的現(xiàn)狀,如果我們有更多的精力,可以進行更細粒度的分析與拆解。 |
|