【可視化分析案例】用python分析B站Top100排行榜數據

来源:https://www.cnblogs.com/mashukui/archive/2022/05/29/16323736.html
-Advertisement-
Play Games

案例標題:用python可視化分析,B站Top100排行榜數據。 分析流程: 一、數據讀取 二、數據概覽 三、數據清洗 四、可視化分析 ·相關性分析-散點圖(scatter) ·得分分佈-餅圖(pie) ·各指標分佈-箱形圖(boxplot) ·視頻作者分析-詞雲圖(wordcloud) ...


目錄

一、數據源

之前,我分享過一期爬蟲,用python爬取Top100排行榜:

最終數據結果,是這樣的:
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)

針對視頻作者,畫出詞雲圖。

代碼中各個細節設置項,已添加對應註釋,不再贅述。

和原始背景圖對比:

這個背景圖,是我找的一個動漫小人的圖片,對比詞雲圖,你會發現:

  1. 詞雲圖和背景圖的形狀,大體一致(mask參數的作用)

  2. 詞雲圖和背景圖的顏色分佈,大體一致(color_func參數的作用)

至此,全部分析結束。

六、同步講解視頻

此案例的講解視頻:
https://www.zhihu.com/zvideo/1513851213354893312


by 馬哥python說


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前言 還記得你第一次遇到「線程安全」這個詞的時候嗎? 我第一次遇到線程安全這個詞是在學習多線程併發操作的時候,看到人家文章里出現這個詞,還有說各種線程安全的類,但是一開始並不理解線程安全是什麼意思,也沒去深究線程怎樣是安全的?怎樣是不安全的?只是腦子裡接收了這麼一個詞。 線程安全是多線程編程時的計算 ...
  • JVM 是Java的基石,Java從業者需要瞭解。JVM不是一個新的知識,網上文章很多,本篇的不同之處在於參考一手資料、內容經過反覆推敲。本文將會有篩選地研究JVM的精華部分,至少達到準系統架構師夠用的程度。本篇主要分享學習Java Class文件以及類載入器CLassLoader的知識。 ...
  • 資料庫表之間關係: 一對一 (可以看做一對多的特例) 一對多 多對多 下圖將涵蓋了所有關係。 根據restful介面風格,我們最終會落到一個實體上,示例按照b表。其他表同理。 GET https://ip:port/xx/xx/1/0/b 查詢的場景: 只需要b表的某些元素 需要b某些元素,及相關聯 ...
  • 前言 偶然一天把某項目文檔傳到手機上,用手機自帶的閱讀器方便隨時拿出來查閱。看著我那好久沒點開的閱讀器,再看著書架上擺著幾本不知道是多久之前導入的小說。 閉上眼,我仿佛看到那時候的自己。側躺著縮在被窩裡,亮度調到最低,看的津津有味。 睜開眼,一聲短嘆,心中五味雜陳,時間像箭一樣飛逝而去,過去靜止不動 ...
  • 狀態機簡介: 狀態機是有限狀態自動機的簡稱,是現實事物運行規則抽象而成的一個數學模型。【規則的抽象】 有限狀態機一般都有以下特點: (1)可以用狀態來描述事物,並且任一時刻,事物總是處於一種狀態; (2)事物擁有的狀態總數是有限的; (3)通過觸發事物的某些行為,可以導致事物從一種狀態過渡到另一種狀 ...
  • 我前面使用的jdbc和jdbc的工具類集成的但是它們在少部分代碼的情況下會會簡單,但是以後如果項目較大jdbc的固定代碼會很難維護,如果使用框架會簡單很多,也標志著java學習正式進入到框架階段 ...
  • Hi, 我是Mic。 今天分享一道一線互聯網公司必問的面試題。 ”JVM如何判斷一個對象可以被回收“ 關於這個問題,來看看普通人和高手的回答。 普通人: 嗯。。。。。。。。。。 高手: 好的,面試官。 在JVM裡面,要判斷一個對象是否可以被回收,最重要的是判斷這個對象是否還在被使用,只有沒被使用的對 ...
  • 前言 今天的這個腳本,是一個別人發的外包,交互界面的代碼就不在這裡說了,但是可以分享下自動評論、自動點贊、自動關註、採集評論和視頻的數據是如何實現的 開發環境 python 3.8 運行代碼pycharm 2021.2 輔助敲代碼requests 第三方模塊 原理: 模擬客戶端,向伺服器發送請求 對 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...