【可视化分析案例】用python分析B站Top100排行榜数据
一、数据源
之前,我分享过一期爬虫,用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说
【可视化分析案例】用python分析B站Top100排行榜数据的更多相关文章
- Python爬取猫眼top100排行榜数据【含多线程】
# -*- coding: utf-8 -*- import requests from multiprocessing import Pool from requests.exceptions im ...
- Python采集CSDN博客排行榜数据
文章目录 前言 网络爬虫 搜索引擎 爬虫应用 谨防违法 爬虫实战 网页分析 编写代码 运行效果 反爬技术 前言 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知 ...
- Python爬虫+可视化教学:爬取分析宠物猫咪交易数据
前言 各位,七夕快到了,想好要送什么礼物了吗? 昨天有朋友私信我,问我能用Python分析下网上小猫咪的数据,是想要送一只给女朋友,当做礼物. Python从零基础入门到实战系统教程.源码.视频 网上 ...
- 在我的新书里,尝试着用股票案例讲述Python爬虫大数据可视化等知识
我的新书,<基于股票大数据分析的Python入门实战>,预计将于2019年底在清华出版社出版. 如果大家对大数据分析有兴趣,又想学习Python,这本书是一本不错的选择.从知识体系上来看, ...
- 昨天521表白失败,我想用Python分析一下...表白记录和聊天记录
昨天跟喜欢的妹子表白了. 失败了!.下面是表白的聊天记录: (跟妹子已经认识一段时间) 我:灭嘤嘤,我喜欢你. 妹子:你干嘛? 我:今天520,跟你表白鸭. 妹子:那....有多喜欢? 我: 有很多很 ...
- BUAA 2020 软件工程 软件分析案例作业
Author: 17373051 郭骏 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人博客作业-软件分析案例 我在这个课程的目标是 学习软件 ...
- 用Python分析2000款避孕套,得出这些有趣的结论
到现在为止,我们的淘宝教程已经写到了第四篇,前三篇分别是: 第一篇:Python模拟登录淘宝,详细讲解如何使用requests库登录淘宝pc端. 第二篇:淘宝自动登录2.0,新增Cookies序列化, ...
- Python分析盘点2019全球流行音乐:是哪些歌曲榜单占领了我们?
写在前面:圣诞刚过,弥留者节日气息的大家是否还在继续学习呐~在匆忙之际也不忘给自己找几首好听的歌曲放松一下,缠绕着音乐一起来看看关于2019年流行音乐趋势是如何用Python分析的吧! 昨天下午没事儿 ...
- Python分析数据难吗?某科技大学教授说,很难但有方法就简单
用python分析数据难吗?某科技大学的教授这样说,很难,但要讲方法,主要是因为并不是掌握了基础,就能用python来做数据分析的. 所谓python的基础,也就是刚入门的python学习者,学习的基 ...
随机推荐
- python爬虫---虎牙直播封面采集
代码: import requests from lxml import etree # html解析库 source = requests.get("https://www.huya.co ...
- leetcode1753. 移除石子的最大得分
题目描述: 你正在玩一个单人游戏,面前放置着大小分别为 a.b 和 c 的 三堆 石子. 每回合你都要从两个 不同的非空堆 中取出一颗石子,并在得分上加 1 分.当存在 两个或 ...
- 【Azure 云服务】Azure Cloud Service (Extended Support) 云服务开启诊断日志插件 WAD Extension (Windows Azure Diagnostic) 无法正常工作的原因
问题描述 在Azure中国区上面创建一个云服务(外延支持)后,根据官方文档(在云服务(外延支持)中应用 Azure 诊断扩展: https://docs.azure.cn/zh-cn/cloud-se ...
- Educational Codeforces Round 116 (Rated for Div. 2), problem: (C) Banknotes
传送门 Problem - C - Codeforces 题目 题目重点内容手打翻译:(欢迎批评指正) 在柏林, 使用着n套不同的货币(banknotes).第i个货币面额为10ai 元,货币的第一种 ...
- java高级用法之:在JNA中将本地方法映射到JAVA代码中
目录 简介 Library Mapping Function Mapping Invocation Mapping 防止VM崩溃 性能考虑 总结 简介 不管是JNI还是JNA,最终调用的都是nativ ...
- partOneJava学习卷土重来-----第一次测试题目介绍
石家庄铁道大学2021年秋季 2020 级课堂测试试卷(一)(15分) 课程名称: JAVA语言程序设计 任课教师: 王建民 考试时间: 150 分钟 一.考试要求: 1.按照测试 ...
- PHP入门-Window 下利用Nginx+PHP 搭建环境
前言 最近公司有个PHP项目需要开发维护,之前一直都是跟着巨硬混的,现在要接触PHP项目.学习一门新语言之前,先搭建好环境吧,鉴于公司项目是基于php 7.1.33 版本的,所以以下我使用的都是基于这 ...
- 苹果手机Safri浏览器 js 解析问题
低系统版本的苹果手机的浏览器存在很多JS问题 一 date 问题 1.new Date() {至少10.3版本已下存在这个问题} 苹果手机只能识别 new Date('2017/04/12') 这 ...
- 攻防世界-MISC:something_in_image
这是攻防世界高手进阶区的第四题,题目如下: 点击下载附件一,得到一个压缩包,解压后得到一个文件,用010editor打开,搜索flag,即可得到flag 另外一种做法,根据题目包含image,使用ka ...
- 攻防世界-MISC:give_you_flag
这是攻防世界新手练习区的第四题,题目如下: 点击附件一下载,打开后发现是一个gif动图 可以看到动图有一瞬间出现了一个二维码,找一个网站给他分离一下 得到一张不完整的二维码(然后就不知道该怎么办了,菜 ...