一、爬取老番茄B站数据

前几天开发了一个python爬虫脚本,成功爬取了B站李子柒的视频数据,共142个视频,17个字段,含:

视频标题,视频地址,视频上传时间,视频时长,是否合作视频,视频分区,弹幕数,播放量,点赞数,投币量,收藏量,评论数,转发量,实时爬取时间

基于这个Python爬虫程序,我更换了up主的UID,把李子柒的uid换成了老番茄的uid,便成功爬取了老番茄的B站数据。共393个视频,17个字段,字段同上。

这里展示下爬取到的前20个视频数据:



基于爬取的老番茄B站数据,用python做了以下基础数据分析的开发。

二、python数据分析

1、读取数据源

import pandas as pd
df = pd.read_excel('B站视频数据_老番茄.xlsx', parse_dates=['视频上传时间', '实时爬取时间']) # 读取excel数据

2、查看数据概况

df.head(3)  # 查看前三行数据
df.shape # 查看形状,几行几列
df.info() # 查看列信息
df.describe() # 数据分析
df['是否合作视频'].value_counts() # 统计:是否合作视频
df['视频分区'].value_counts() # 统计:视频分区

3、查看异常值

df2 = df[['视频标题', '视频地址', '弹幕数', '播放量',
'点赞数', '投币量', '收藏量', '评论数', '转发量', '视频上传时间']] # 去掉不关心的列
df2.loc[df.评论数 == 0] # 评论数是0的数据
df2.isnull().any() # 空值
df2.duplicated().any() # 重复值

4.1、查看最大值(max函数)

df2.loc[df.播放量 == df['播放量'].max()]  # 播放量最高的视频
df2.loc[df.弹幕数 == df['弹幕数'].max()] # 弹幕数最高的视频

4.2、查看最小值(min函数)

df2.loc[df.投币量 == df['投币量'].min()]  # 投币量最小的视频
df2.loc[df.收藏量 == df['收藏量'].min()] # 收藏量最小的视频

5.1、查看TOP3的视频(nlargest函数)

df2.nlargest(n=3, columns='播放量')  # 播放量TOP3的视频
df2.nlargest(n=3, columns='投币量') # 投币量TOP3的视频

5.2、查看倒数3的视频(nsmallest函数)

df2.nsmallest(n=3, columns='评论数')  # 评论数倒数3的视频
df2.nsmallest(n=3, columns='转发量') # 转发量倒数3的视频

6、查看相关性

# 查看spearman相关性(得出结论:收藏量&投币量,相关性最大,0.98)
df2.corr(method='spearman')

7.1、可视化分析-plot

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 显示中文标签 # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
# 可视化效果不好
df2.plot(x='视频上传时间', y=['弹幕数', '播放量', '点赞数', '投币量', '收藏量', '评论数', '转发量'])

7.2、可视化分析-pyecharts

from pyecharts.charts import Line  # 折线图所导入的包
from pyecharts import options as opts # 全局设置所导入的包
time_list = df2['视频上传时间'].astype(str).values.tolist()
line = (
Line() # 实例化Line
# 加入X轴数据
.add_xaxis(time_list)
# 加入Y轴数据
.add_yaxis("弹幕数", df2['弹幕数'].values.tolist())
.add_yaxis("播放量", df2['播放量'].values.tolist())
.add_yaxis("点赞数", df2['点赞数'].values.tolist())
.add_yaxis("投币量", df2['投币量'].values.tolist())
.add_yaxis("收藏量", df2['收藏量'].values.tolist())
.add_yaxis("评论数", df2['评论数'].values.tolist())
.add_yaxis("转发量", df2['转发量'].values.tolist())
.set_global_opts(title_opts=opts.TitleOpts(title="老番茄B站数据分析"),
legend_opts=opts.LegendOpts(is_show=True),
)
# 全局设置项
)

至此,基础数据分析工作完成了。

三、同步讲解视频

逐行代码视频讲解:

https://www.zhihu.com/zvideo/1455460990275567616


by 马哥python说

【Python数据分析案例】python数据分析老番茄B站数据(pandas常用基础数据分析代码)的更多相关文章

  1. pandas数据分析案例

    1.数据分析步骤 ''' 数据分析步骤: 1.先加载数据 pandas.read_cvs("path") 2.查看数据详情 df.info() ,df.describe() ,df ...

  2. 向大家介绍我的新书:《基于股票大数据分析的Python入门实战》

    我在公司里做了一段时间Python数据分析和机器学习的工作后,就尝试着写一本Python数据分析方面的书.正好去年有段时间股票题材比较火,就在清华出版社夏老师指导下构思了这本书.在这段特殊时期内,夏老 ...

  3. 基于股票大数据分析的Python入门实战(视频教学版)的精彩插图汇总

    在我写的这本书,<基于股票大数据分析的Python入门实战(视频教学版)>里,用能吸引人的股票案例,带领大家入门Python的语法,数据分析和机器学习. 京东链接是这个:https://i ...

  4. 【Python开发】Python中数据分析环境的搭建

    注:无论是任何一门语言,刚开始入门的时候,语言运行环境的搭建都是一件不轻松的事情. Python的运行环境 要运行或写Python代码,就需要Python的运行环境,主要的Python有以下三类: 原 ...

  5. Python数据分析与挖掘所需的Pandas常用知识

    Python数据分析与挖掘所需的Pandas常用知识 前言Pandas基于两种数据类型:series与dataframe.一个series是一个一维的数据类型,其中每一个元素都有一个标签.series ...

  6. [学习笔记] [数据分析] 01.Python入门

    1.安装Python与环境配置 ① ② 安装pip以及利用pip安装Python库 2.Anaconda安装 conda list 要在root环境下 3.常用数据分析库 ① Numpy 安装:con ...

  7. 零基础学习Python web开发、Python爬虫、Python数据分析,从基础到项目实战!

    随着大数据和人工智能的发展,目前Python语言的上升趋势比较明显,而且由于Python语言简单易学,所以不少初学者往往也会选择Python作为入门语言. Python语言目前是IT行业内应用最为广泛 ...

  8. 《利用Python进行数据分析: Python for Data Analysis 》学习随笔

    NoteBook of <Data Analysis with Python> 3.IPython基础 Tab自动补齐 变量名 变量方法 路径 解释 ?解释, ??显示函数源码 ?搜索命名 ...

  9. 01 学习数据分析的python库

    网页爬取 1.requests 2.BeautifulSoup 3.Scrapy 科学计算与数据分析 1.scipy 2.numpy 3.pandas 机器学习和深度学习 1.Scikit-learn ...

随机推荐

  1. Idea中使用Lombok 编译报找不到符号

    1.问题描述 项目中使用了lombok,但是在idea编译过程是出现找不到符号.报错如下图所示:   file @Data @ApiModel(value = "HeadTeacherVO& ...

  2. Flask-Migrate使用教程

    功能:flask-migrate是flask的一个扩展模块,主要是扩展数据库表结构的. 项目准备:一个干净的Flask项目,下载连接地址: https://pan.baidu.com/s/1WqdIN ...

  3. eclipse更换工作空间后,需要修改哪些常用配置

    一.对于配置不太了解,第一次配置. 常用 (ps:配置我们在导航栏的 Windows --> preference 里进行配置) 1.首先,我们配置编译环境:Java --> Instal ...

  4. Effective Java —— try-with-resources 优先于 try-finally

    本文参考 本篇文章参考自<Effective Java>第三版第九条"Prefer try-with-resources to try-finally" The cod ...

  5. list集合的快速筛选条件方法

    List<String> list = new ArrayList<>();list.add("张无忌");list.add("周芷若" ...

  6. 顺利通过EMC实验(14)

  7. java中的排序除了冒泡以来, 再给出一种方法, 举例说明

    9.5 排序:   有一种排序的方法,非常好理解,详见本题的步骤,先找出最大值和最小值,把最小值打印出来后,把它存在另一个数组b当中,再删除此最小值,之后再来一次找出最小值,打印出最小值以后,再把它存 ...

  8. video踩坑

    查看以及修改video控件样式,原文地址:https://blog.csdn.net/z2181745/article/details/82531686 chrome浏览器,F12调出控制台左上角三点 ...

  9. 为Anaconda python3安装gi模块

    项目开发中需要使用到gi模块,Ubuntu自带的Python3.5可以正常使用gi.项目解释环境是Anaconda python3.5,提示ImportError: No module named ' ...

  10. [强网杯2019]upload buuoj

    提示:重点在这,可节省大部分时间 扫描后台 发现www.tar.gz备份文件. 这平台有429[太多请求限制]防护.dirsearch扫描一堆429.于是用了最笨的方法. 文件上传 先注册个账号 注册 ...