91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

用Python對TMDB電影數據進行分析,包括數據讀取,數據清洗,數據分析

資源截圖

代碼片段和文件信息


#?coding:?utf-8

#?In[3]:


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


#?In[4]:


#首先我們查詢缺失了上映日期的是哪一部電影
imdb[imdb.release_date.isnull().values?==?True]
#然后查詢這個電影的上映日期
#填充缺失值
imdb.release_date?=?imdb.release_date.fillna(‘2014-06-01‘)
#把這一個字段的數據轉化為時間格式
imdb.release_date?=?pd.to_datetime(imdb.release_date)
#把上映的年份提取出來新建一個列
imdb.loc[:?‘year‘]?=?[i.year?for?i?in?imdb.release_date]
imdb.head(2)


#?In[5]:


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


#?In[6]:


#可以發現,電影類型的數據是以列表形式存儲的,這不利于我們接下來的運算
#首先把電影類型和年份做成一個新的列表,再重新組合
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})????????

#先簡單的看一下數據情況
#可以發現我們成功的分離了電影類型
q11.head(8)


#?In[7]:


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

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


#?In[8]:


#在接下來繪圖中,為了方便,先統一設置一下中文字體
import?matplotlib
matplotlib.rcParams[‘font.family‘]?=?‘STsong‘
matplotlib.rcParams[‘font.size‘]?=?15
matplotlib.rcParams[‘font.style‘]?=?‘normal‘


#?In[9]:


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


#?In[10]:


#那么如何觀察這么多年來電影類型的變化呢
#首先還是對數據進行一個透視
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‘)


#把畫布設置大一些
plt.figure(figsize?=?(20?10))
#循環畫出每一個電影類型隨著時間變化的折線圖
#list1是之前對電影類型的統計
for?i?in?set(lis1):
????plt.plot(q14[q14.genress?==?i].years?q14[q14.genress?==?i].counts?label?=?i)
????#label用來設置圖例
????plt.legend()
#設置標題和坐標軸的字體大小和顏色
plt.title(‘電影類型隨時間的變化‘?fontsize?=?20?color?=?‘blue‘)
plt.xlabel(‘時間‘?fontsize?=?20?color?=?‘blue‘)
plt.ylabel(‘數量‘?fontsize?=?20?color?=?‘blue‘)
plt.show()


#?In[11]:


#但是這樣因為種類太多,其實不方便觀察的
#這里我們選取幾個類型的片子作為代表去觀察
a?=?[‘Action‘‘Drama‘‘Thriller‘‘Comedy‘‘Romance‘]
p

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

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

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

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

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


評論

共有 條評論