一、爬取老番茄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说
来源:https://www.cnblogs.com/mashukui/p/16242980.html
本站部分图文来源于网络,如有侵权请联系删除。