xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

資源簡(jiǎn)介

用Python對(duì)TMDB電影數(shù)據(jù)進(jìn)行分析,包括數(shù)據(jù)讀取,數(shù)據(jù)清洗,數(shù)據(jù)分析

資源截圖

代碼片段和文件信息


#?coding:?utf-8

#?In[3]:


import?pandas?as?pd
import?numpy?as?np
import?matplotlib.pyplot?as?plt
import?seaborn?as?sns
#首先把數(shù)據(jù)導(dǎo)入進(jìn)來(lái)
imdb?=?pd.read_csv(‘e:/dataset/tmdb_5000_movies.csv‘)
#大概看一下數(shù)據(jù)是什么樣的
imdb.head(3)
#imdb.info()


#?In[4]:


#首先我們查詢?nèi)笔Я松嫌橙掌诘氖悄囊徊侩娪?br/>imdb[imdb.release_date.isnull().values?==?True]
#然后查詢這個(gè)電影的上映日期
#填充缺失值
imdb.release_date?=?imdb.release_date.fillna(‘2014-06-01‘)
#把這一個(gè)字段的數(shù)據(jù)轉(zhuǎn)化為時(shí)間格式
imdb.release_date?=?pd.to_datetime(imdb.release_date)
#把上映的年份提取出來(lái)新建一個(gè)列
imdb.loc[:?‘year‘]?=?[i.year?for?i?in?imdb.release_date]
imdb.head(2)


#?In[5]:


#導(dǎo)入正則包
import?re
#建立函數(shù)
def?fenge(str):
????pattern?=?re.compile(r‘\b[A-Z]\w+‘)???#?查找首字母大寫(xiě)
????strr?=?pattern.findall(str)
????return?strr
#將函數(shù)應(yīng)用到整列
#再將其添加到原來(lái)的數(shù)據(jù)中
imdb[‘generss‘]?=?list(map(fenge?imdb.genres))
#由于目前解決的是問(wèn)題1,所以先把這兩列單獨(dú)拿出來(lái)計(jì)算
q1?=?pd.Dataframe({‘generss‘:?imdb.generss?‘year‘:imdb.year})
q1.info()
q1.head(5)


#?In[6]:


#可以發(fā)現(xiàn),電影類型的數(shù)據(jù)是以列表形式存儲(chǔ)的,這不利于我們接下來(lái)的運(yùn)算
#首先把電影類型和年份做成一個(gè)新的列表,再重新組合
lis1?=?[]
lis2?=?[]
for?i?in?range(len(q1.year)):
????for?j?in?q1.generss[i]:
????????lis1.append(j)
????????lis2.append(q1.year[i])
q11?=?pd.Dataframe({‘genress‘:lis1?‘years‘:lis2?‘counts‘:1})????????

#先簡(jiǎn)單的看一下數(shù)據(jù)情況
#可以發(fā)現(xiàn)我們成功的分離了電影類型
q11.head(8)


#?In[7]:


#對(duì)數(shù)據(jù)進(jìn)行處理得出每年份電影總數(shù)
q12?=?q11.groupby(‘years‘).agg(np.sum)
#把年份重新變成列
q12[‘years‘]?=?q12.index.get_level_values(‘years‘)

#繪圖
plt.plot(q12.years?q12.counts‘c‘)
#設(shè)置坐標(biāo)軸范圍和標(biāo)簽
plt.axis([1916?2016?0?700])
#坐標(biāo)軸使用中文
plt.xlabel(‘時(shí)間‘?fontproperties?=?‘SimHei‘?fontsize?=?15?color?=?‘black‘)
plt.ylabel(‘電影類型數(shù)‘?fontproperties?=?‘SimHei‘?fontsize?=?15?color?=?‘black‘)
#設(shè)置圖例和網(wǎng)格
plt.grid()
plt.legend()
plt.show()


#?In[8]:


#在接下來(lái)繪圖中,為了方便,先統(tǒng)一設(shè)置一下中文字體
import?matplotlib
matplotlib.rcParams[‘font.family‘]?=?‘STsong‘
matplotlib.rcParams[‘font.size‘]?=?15
matplotlib.rcParams[‘font.style‘]?=?‘normal‘


#?In[9]:


#將所要電影按類型統(tǒng)計(jì)
q13?=?q11.groupby(‘genress‘).agg(np.sum)
#設(shè)置一下餅圖的風(fēng)格
plt.style.use(‘ggplot‘)
#繪圖
plt.pie(q13.counts/q13.counts.sum()#繪制的是百分比的圖
????????labels?=?q13.index?????????#標(biāo)簽為電影類型
????????autopct=‘%.1f%%‘???????????#百分比的格式?
????????radius?=?3?????????????????#餅圖的半徑
????????textprops?=?{‘fontsize‘:?20?‘color‘?:?‘black‘}#標(biāo)簽字體的顏色和大小
???????)?
plt.title(‘總體IMDB電影類型分布‘)?#標(biāo)題
plt.show()


#?In[10]:


#那么如何觀察這么多年來(lái)電影類型的變化呢
#首先還是對(duì)數(shù)據(jù)進(jìn)行一個(gè)透視
q14?=?pd.pivot_table(q11?index?=?[‘genress‘?‘years‘]?values?=?[‘counts‘]?aggfunc?=?np.sum)
#把年份和類型重新變成列
q14[‘years‘]?=?q14.index.get_level_values(‘years‘)
q14[‘genress‘]?=?q14.index.get_level_values(‘genress‘)


#把畫(huà)布設(shè)置大一些
plt.figure(figsize?=?(20?10))
#循環(huán)畫(huà)出每一個(gè)電影類型隨著時(shí)間變化的折線圖
#list1是之前對(duì)電影類型的統(tǒng)計(jì)
for?i?in?set(lis1):
????plt.plot(q14[q14.genress?==?i].years?q14[q14.genress?==?i].counts?label?=?i)
????#label用來(lái)設(shè)置圖例
????plt.legend()
#設(shè)置標(biāo)題和坐標(biāo)軸的字體大小和顏色
plt.title(‘電影類型隨時(shí)間的變化‘?fontsize?=?20?color?=?‘blue‘)
plt.xlabel(‘時(shí)間‘?fontsize?=?20?color?=?‘blue‘)
plt.ylabel(‘?dāng)?shù)量‘?fontsize?=?20?color?=?‘blue‘)
plt.show()


#?In[11]:


#但是這樣因?yàn)榉N類太多,其實(shí)不方便觀察的
#這里我們選取幾個(gè)類型的片子作為代表去觀察
a?=?[‘Action‘‘Drama‘‘Thriller‘‘Comedy‘‘Romance‘]
p

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件???????4502??2018-05-09?11:31??IMDB電影數(shù)據(jù)分析.py

????.......???5698602??2017-12-07?06:34??tmdb_5000_movies.csv

-----------?---------??----------?-----??----

??????????????5703104????????????????????2


評(píng)論

共有 條評(píng)論