毕业设计 基于大数据B站数据分析项目

0 数据分析目标

今天向大家介绍如何使用大数据技术,对B站的视频数据进行分析,得到可视化结果。

这里学长分为两个部分描述:

  • 1 对B站整体视频进行数据分析
  • 2 对B站的具体视频进行弹幕情感分析

在这里插入图片描述

🧿 选题指导, 项目分享:见文末


1 B站整体视频数据分析

分析方向:首先从总体情况进行分析,之后分析综合排名top100的视频类别。

总体情况部分包括:

  1. 各分区播放量情况。
  2. 各区三连(硬币、收藏、点赞)情况。
  3. 弹幕、评论、转发情况。
  4. 绘制综合词云图,查看关键词汇。

综合排名top100部分包括:
5. top100类别占比。
6. top100播放量情况。
7. 硬币、收藏、点赞平均人数分布。
8. 各分区平均评论、弹幕、转发量情况。

1.1 数据预处理

这里主要是进行查看数据信息、空值、重复值以及数据类型,但由于数据很完整这里不再做过多操作。

对数据进行拆分、聚合,方便之后各项分析,由于“区类别”列中的“全站”是各分类中排名靠前的视频,会出现重复数据,因此对其进行去除。

df.info()
df.isnull().count()
df.nunique().count()
df.dtypes
#剔除全区排名
df_nall=df.loc[df['区类别']!='全站']
df_nall['区类别'].value_counts()
#按分数进行排序asc
df_top100 = df_nall.sort_values(by='分数',ascending=False)[:100]
df_type = df_nall.drop(['作者','视频编号','标签名称','视频名称','排名'],axis=1)
gp_type = df_type.groupby('区类别').sum().astype('int')
type_all = gp_type.index.tolist()

1.2 数据可视化

各分区播放情况

play = [round(i/100000000,2) for i in gp_type['播放次数'].tolist()]

# bar = (Bar()
#             .add_xaxis(type_all)
#             .add_yaxis("", play)
#             .set_global_opts(
#             title_opts=opts.TitleOpts(title="各分区播放量情况"),
#             yaxis_opts=opts.AxisOpts(name="次/亿"),
#             xaxis_opts=opts.AxisOpts(name="分区",axislabel_opts={"rotate":45})
#         )
#     )
# bar.render_notebook()

pie = (
    Pie()
    .add(
        "",
        [list(z) for z in zip(type_all, 
                              play)],
        radius=["40%", "75%"],
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="各分区播放量情况  单位:亿次"),
        legend_opts=opts.LegendOpts(
            orient="vertical", pos_top="15%", pos_left="2%"
        ),
    )
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
)
pie.render_notebook()

在这里插入图片描述
播放量排名前三的分别是生活类、动画类、鬼畜类。其中动画类和鬼畜类,这两个是B站的特色。
第三、四位是音乐类和科技类。

各区三连量情况可视化

coin_all = [round(i/1000000,2) for i in gp_type['硬币数'].tolist()]
like_all = [round(i/1000000,2) for i in gp_type['点赞数'].tolist()]
favourite_all = [round(i/1000000,2) for i in gp_type['喜欢人数'].tolist()]
def bar_base() -> Bar:
    c = (
        Bar()
        .add_xaxis(type_all)
        .add_yaxis("硬币", coin_all)
        .add_yaxis("点赞", like_all)
        .add_yaxis("收藏", favourite_all)
        .set_global_opts(title_opts=opts.TitleOpts(title="各分区三连情况"),
                        yaxis_opts=opts.AxisOpts(name="次/百万"),
                        xaxis_opts=opts.AxisOpts(name="分区",
                                                 axislabel_opts={
   "rotate":45}))
    )
    return c
        
bar_base().render_notebook()

在这里插入图片描述

虽然生活类投币和点赞数依然是不可撼动的,但是收藏数却排在动画之后,科技类收藏升至第四位。

弹幕、评论、三联情况

danmaku_all = [round(i/100000,2) for i in gp_type['弹幕数'].tolist()]
reply_all = [round(i/100000,2) for i in gp_type['评论数'].tolist()]
share_all = [round(i/100000,2) for i in gp_type['转发数'].tolist()]

line = (
        Line()
        .add_xaxis
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值