🧑 博主簡介:曾任某智慧城市類企業
算法總監
,目前在美國市場的物流公司從事高級算法工程師
一職,深耕人工智能領域,精通python數據挖掘、可視化、機器學習等,發表過AI相關的專利并多次在AI類比賽中獲獎。CSDN人工智能領域的優質創作者,提供AI相關的技術咨詢、項目開發和個性化解決方案等服務,如有需要請站內私信或者聯系任意文章底部的的VX名片(ID:xf982831907
)
💬 博主粉絲群介紹:① 群內初中生、高中生、本科生、研究生、博士生遍布,可互相學習,交流困惑。② 熱榜top10的常客也在群里,也有數不清的萬粉大佬,可以交流寫作技巧,上榜經驗,漲粉秘籍。③ 群內也有職場精英,大廠大佬,可交流技術、面試、找工作的經驗。④ 進群免費贈送寫作秘籍一份,助你由寫作小白晉升為創作大佬。⑤ 進群贈送CSDN評論防封腳本,送真活躍粉絲,助你提升文章熱度。有興趣的加文末聯系方式,備注自己的CSDN昵稱,拉你進群,互相學習共同進步。
【數據可視化-30】Netflix電影和電視節目數據集可視化分析
- 一、引言
- 1. 簡述數據可視化的重要性
- Netflix電影和電視節目數據集可視化分析
- 一、引言
- 二、數據探索
- 2.1 數據集介紹
- 2.2 數據清洗與探索
- 三、單維度特征可視化
- 3.1 內容類型分布
- 3.2 上映年份分布
- 3.3 電視節目季數分布
- 3.4 電影時長分布
- 四、多維度關系可視化
- 4.1 top15國家與內容類型的關系
- 4.2 年份與內容類型的關系
- 4.3 評級與內容類型的關系
- 4.4 內容時長與上映年份的關系(以電影為例)
- 五、總結與洞察
一、引言
1. 簡述數據可視化的重要性
??數據可視化是將數據以圖形或圖像的形式表示出來,使得復雜的數據更容易被人類理解和分析。在數據分析、商業智能、科學研究等領域,數據可視化都扮演著至關重要的角色。它不僅能夠直觀展示數據的分布、趨勢和關聯,還能幫助我們發現隱藏在數據中的模式和洞見,從而做出更明智的決策。
Netflix電影和電視節目數據集可視化分析
一、引言
??數據可視化是探索和理解復雜數據集的強大工具。通過可視化分析,我們可以揭示Netflix平臺上電影和電視節目的分布特征、內容趨勢以及用戶可能的觀看偏好。本文將基于包含豐富信息的Netflix數據集,從多個維度進行可視化探索,幫助大家更直觀地了解Netflix內容生態。
二、數據探索
2.1 數據集介紹
??本數據集包含以下變量:
- show_id:每部電影或電視節目的唯一標識符
- type:內容類型(電影或電視節目)
- title:電影或電視節目的標題
- director:電影導演
- cast:參與的演員
- country:內容制作國家
- date_added:在Netflix上的上架日期
- release_year:內容的實際發布年份
- rating:內容的電視分級
- duration:時長(分鐘)或季數
2.2 數據清洗與探索
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns# 加載數據
df = pd.read_csv('netflix_titles.csv') # 請替換為實際文件路徑# 查看數據基本信息
print(df.info())# 查看各列唯一值數量
print(df.nunique())# 缺失值情況
df.isnull().sum()
??從數據的基本信息中,我們可以發現:
- 數據集包含多種類型變量,包括類別型(如type、rating)和一個數值型(release_year)
- 一共有8807行數據,數據中存在缺失值,director導演列的缺失值最多,達到2634個,近缺失30%
三、單維度特征可視化
3.1 內容類型分布
plt.figure(figsize=(10, 6))
sns.countplot(x='type', data=df)
plt.title('Content Type Distribution')
plt.xlabel('Content Type')
plt.ylabel('Count')
plt.tight_layout()
plt.show()
??觀察結果:電視節目和電影的數量差異顯著,電視節目占比較高。
3.2 上映年份分布
plt.figure(figsize=(15, 6))
sns.countplot(x='release_year', data=df, palette='viridis')
plt.title('Content Release Year Distribution')
plt.xlabel('Release Year')
plt.ylabel('Count')
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()
??觀察結果:內容發布年份集中在近幾年,反映出Netflix內容產量的增長趨勢。
3.3 電視節目季數分布
# 提取電視節目的季數信息
tv_shows = df[df['type'] == 'TV Show']
tv_shows['duration'] = tv_shows['duration'].apply(lambda x: int(x.split(' ')[0]) if pd.notnull(x) else 0)plt.figure(figsize=(12, 6))
sns.histplot(tv_shows['duration'], bins=30, kde=True, color='teal')
plt.title('TV Show Seasons Distribution')
plt.xlabel('Number of Seasons')
plt.tight_layout()
plt.show()
??觀察結果:大部分電視節目季數集中在1到5季,少數節目擁有較長的系列。
3.4 電影時長分布
# 提取電影的時長信息
movies = df[df['type'] == 'Movie']
movies['duration'] = movies['duration'].apply(lambda x: int(x.split(' ')[0]) if pd.notnull(x) else 0)plt.figure(figsize=(12, 6))
sns.histplot(movies['duration'], bins=50, kde=True, color='coral')
plt.title('Movie Duration Distribution')
plt.xlabel('Duration (minutes)')
plt.tight_layout()
plt.show()
??觀察結果:電影時長主要集中在90到120分鐘之間,符合典型電影的時長范圍。
四、多維度關系可視化
4.1 top15國家與內容類型的關系
country = df['country'].value_counts()[:15].index.tolist()
df1 = df[df['country'].isin(country)]plt.figure(figsize=(15, 8))
sns.countplot(x='country', hue='type', data=df1, palette='Set2')
plt.title('Content Type Distribution by Country')
plt.xlabel('Country')
plt.ylabel('Count')
plt.xticks(rotation=45)
plt.legend(title='Content Type')
plt.tight_layout()
plt.show()
??觀察結果:美國制作的內容最多,且電影和電視節目分布較為均衡,其他國家則各有側重。
4.2 年份與內容類型的關系
plt.figure(figsize=(15, 8))
sns.countplot(x='release_year', hue='type', data=df, palette='husl')
plt.title('Content Type Distribution Over Years')
plt.xlabel('Release Year')
plt.ylabel('Count')
plt.legend(title='Content Type', bbox_to_anchor=(1, 1), loc='upper left')
plt.tight_layout()
plt.show()
??觀察結果:近幾年電影和電視節目數量均呈現增長趨勢,但電視節目增長更為顯著。
4.3 評級與內容類型的關系
plt.figure(figsize=(15, 8))
sns.countplot(x='rating', hue='type', data=df, palette='muted')
plt.title('Content Distribution by Rating and Type')
plt.xlabel('Rating')
plt.ylabel('Count')
plt.xticks(rotation=45)
plt.legend(title='Content Type', bbox_to_anchor=(1, 1), loc='upper left')
plt.tight_layout()
plt.show()
??觀察結果:不同評級的內容類型分布差異明顯,TV-MA(成人級)和TV-14(青春期少年級)分級的內容較多,涵蓋電影和電視節目。
4.4 內容時長與上映年份的關系(以電影為例)
plt.figure(figsize=(15, 8))
sns.scatterplot(x='release_year', y='duration', data=movies, alpha=0.6, color='purple')
plt.title('Movie Duration vs Release Year')
plt.xlabel('Release Year')
plt.ylabel('Duration (minutes)')
plt.tight_layout()
plt.show()
??觀察結果:電影時長與上映年份無明顯線性關系,但可見不同時期電影時長的分布特征。
五、總結與洞察
??通過以上多維度的可視化分析,我們得出以下關鍵洞察:
-
內容類型分布不均:電視節目數量多于電影,且增長趨勢更為明顯。
-
國家制作差異顯著:美國是內容制作的主力軍,其他國家制作內容較少,但各有特色。
-
分級與內容類型關聯緊密:成人級和青春期少年級內容占比較大,涵蓋電影和電視節目。
-
電影時長穩定:電影時長多集中在90到120分鐘,符合觀眾常規觀影習慣。
??以上分析為理解Netflix平臺內容生態提供了多維度視角,揭示了各變量之間的潛在關系,為進一步的內容策略制定和用戶研究提供了數據支持。