目錄
- 一、資料源
- 二、資料讀取
- 三、資料概覽
- 四、資料清洗
- 五、可視化分析
- 5.1 相關性分析(Correlation)
- 5.2 餅圖(Pie)
- 5.3 箱形圖(Boxplot)
- 5.4 詞云圖(wordcloud)
- 六、同步講解視頻
一、資料源
之前,我分享過一期爬蟲,用python爬取Top100排行榜:
最終資料結果,是這樣的:

在此資料基礎上,做python可視化分析,
二、資料讀取
首先,讀取資料源:
# 讀取csv資料
df = pd.read_csv(csv)
三、資料概覽
用shape查看資料形狀:
# 查看資料形狀
df.shape
用head查看前n行:
# 查看前5行
df.head(5)
用info查看列資訊:
# 查看列資訊
df.info()
用describe查看統計性分析:
# 描述性統計分析
df.describe()

四、資料清洗
查看是否存在空值:
# 查看空值
df.isna().any()

每列都是False,沒有空值,
查看是否存在重復值:
#查看重復值
df.duplicated().any()

False代表沒有重復值,
上面我們看到,點踩數都是0,沒有分析意義,所以,用drop洗掉此列:
# 洗掉沒用的列
df.drop('點踩數', axis=1, inplace=True)
洗掉之后,查看洗掉結果:

沒有點踩數了,
五、可視化分析
5.1 相關性分析(Correlation)
資料中,有播放數、彈幕數、投幣數、點贊數、分享數、收藏數等眾多資料指標,
我想分析出,這些指標中,誰和綜合得分的關系最大,決定性最高,
直接采用pandas自帶的corr函式,得出相關性(spearman相關)矩陣:

可以看出,點贊數和綜合得分的相關性最高,達到了0.66,
根據此分析結論,進一步畫出點贊數和綜合得分的分布散點圖,驗證此結論的正確性,

得出結論:隨著點贊數增多,綜合得分呈明顯上升趨勢,進一步得出,二者存在正相關的關系,
5.2 餅圖(Pie)
綜合得分劃分分布區間,繪制出分布餅圖,
首先,劃分資料區間:
# 設定分段
bins = [1000000, 1500000,2000000, 2500000, 3000000, 10000000]
# 設定標簽
labels = [
'100w-150w',
'150w-200w',
'200w-250w',
'250w-300w',
'300w-1000w'
]
# 按分段離散化資料
segments = pd.cut(score_list, bins, labels=labels) # 按分段切割資料
counts = pd.value_counts(segments, sort=False).values.tolist() # 統計個數
至于區間怎么劃分,可以按照對資料的大致理解,和最終可視化呈現的效果,微調劃磁區間,
繪制餅圖:

得出結論:綜合得分在100w至150w這個區間的視頻最多,有36個視頻(占比36%)
5.3 箱形圖(Boxplot)
箱形圖,是一種分析資料分布、離散情況的資料分析方法,

首先,我嘗試了把這幾個資料指標,繪制在同一張圖里:

可以發現,由于播放數遠遠大于其他資料指標,不在一個數量級,導致其他資料指標的box都擠到一塊了,可視化效果很差,所以,我打算把每個box畫到一個圖里,避免這種情況的發生,
以下代碼,含知識點(subplot(n_row, n_col, order) n_row代表幾行,n_col代表幾列,order代表第幾個)

得出結論:每個資料指標都存在極值的情況(最大值距離box很遠),資料比較離散,方差較大,
5.4 詞云圖(wordcloud)
針對視頻作者,畫出詞云圖,
代碼中各個細節設定項,已添加對應注釋,不再贅述,

和原始背景圖對比:

這個背景圖,是我找的一個動漫小人的圖片,對比詞云圖,你會發現:
-
詞云圖和背景圖的形狀,大體一致(mask引數的作用)
-
詞云圖和背景圖的顏色分布,大體一致(color_func引數的作用)
至此,全部分析結束,
六、同步講解視頻
此案例的講解視頻:
https://www.zhihu.com/zvideo/1513851213354893312
by 馬哥python說
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/482565.html
標籤:其他
