目录
一、实现目标¶
本项目通过查找B站1-107期《每周必看》栏目相关数据,分析了各个分区在每周必看栏目上的数据,试图简单回答以下问题:
1.B站每周必看的入选标准是什么?
2.不同分区在每周必看栏目上的出现频率?
3.每个分区的视频分别有一些什么数据上的特质?
二、导入数据并处理
1、导包
In [2]:
import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns import plotly.express as px
2、导入数据
In [3]:
data = pd.read_excel('/home/mw/input/bbbb8098/week_bilibili_popular.xlsx')
3、缺失值与异常值处理
In [4]:
#无缺失值与异常值 data.isnull().sum()
Out[4]:
F1 0 标题 0 bv号 0 简介 83 动态 309 推荐理由 45 每周必看期数 0 分区 0 子分区 0 up主 0 播放 0 评论 0 收藏 0 硬币 0 点赞 0 分享 0 弹幕 0 全站排行榜最高排名 0 dtype: int64
三、数据分析
1、每周必看的总体数据趋势
In [5]:
#按期数进行统计 data1 = data.copy() data2 = data1.groupby('每周必看期数').sum() data2 = data2.reset_index() data2 = data2.sort_values(by='每周必看期数')
In [6]:
#定义函数,进行数据归一化 def norm(df,col): df[col]=(df[col]-df[col].min())/(df[col].max()-df[col].min())
In [7]:
data3 = data2.copy() norm(data3,'播放') norm(data3,'评论') norm(data3,'收藏') norm(data3,'硬币') norm(data3,'点赞') norm(data3,'分享') norm(data3,'弹幕')
In [8]:
fig=px.line(data3,'每周必看期数',['播放','评论','收藏','硬币','点赞','分享','弹幕'],line_shape='spline') fig.show()
2040608010000.20.40.60.81variable播放评论收藏硬币点赞分享弹幕每周必看期数value
2、每周必看的分区排行
In [9]:
#各个分区在每周必看栏目中所占比例 import plotly.graph_objects as go values = data['分区'].value_counts(dropna=False)[:20].keys().tolist() counts = data['分区'].value_counts(dropna=False)[:20].tolist() value_dict = dict(zip(values, counts)) fig = go.Figure(data=[go.Pie(labels=values, values=counts)]) fig.show()
22.7%14.6%13.8%9.51%8.08%7.67%7.15%4.75%2.4%1.87%1.83%1.8%1.65%1.65%0.561%生活游戏动画知识影视美食音乐鬼畜资讯动物圈数码娱乐舞蹈时尚国创
In [10]:
fig=px.scatter(data,'点赞','播放',color='分区',opacity=0.7,size=np.ones(len(data)),size_max=10,hover_name='标题') fig.show()
00.5M1M1.5M2M2.5M3M3.5M4M4.5M010M20M30M40M50M60M70M80M
分区生活影视游戏动画美食时尚音乐动物圈资讯娱乐知识鬼畜数码舞蹈国创点赞播放
三、分区特点
In [11]:
#求各个分区视频相关数据的平均值 data4 = data.copy() data5 = data4.groupby('分区').mean() data5 = data5.reset_index() data5 = data5.sort_values(by='分区') data6 = data5.copy() #归一化处理 norm(data6,'播放') norm(data6,'评论') norm(data6,'收藏') norm(data6,'硬币') norm(data6,'点赞') norm(data6,'分享') norm(data6,'弹幕') data6
Out[11]:
分区 | F1 | 每周必看期数 | 播放 | 评论 | 收藏 | 硬币 | 点赞 | 分享 | 弹幕 | 全站排行榜最高排名 | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | 动物圈 | 1154.300000 | 53.200000 | 0.089256 | 0.000000 | 0.078714 | 0.000000 | 0.000000 | 0.186255 | 0.000000 | 12.100000 |
1 | 动画 | 1452.907609 | 66.464674 | 0.336825 | 0.365217 | 0.564630 | 0.536805 | 0.505169 | 0.264565 | 0.418881 | 7.847826 |
2 | 国创 | 1162.066667 | 55.666667 | 0.076089 | 0.132260 | 0.353040 | 0.061533 | 0.023657 | 0.110139 | 0.186064 | 13.400000 |
3 | 娱乐 | 1436.187500 | 65.270833 | 0.140287 | 0.815880 | 0.026596 | 0.068625 | 0.180680 | 0.202845 | 1.000000 | 11.791667 |
4 | 影视 | 1431.050926 | 64.537037 | 0.129643 | 0.136555 | 0.365275 | 0.201764 | 0.173301 | 0.270091 | 0.211070 | 11.013889 |
5 | 数码 | 1522.918367 | 68.795918 | 0.229434 | 1.000000 | 0.669958 | 1.000000 | 0.631177 | 0.634237 | 0.502059 | 12.000000 |
6 | 时尚 | 1432.931818 | 64.340909 | 0.166123 | 0.407878 | 0.755622 | 0.311115 | 0.178223 | 0.335957 | 0.529974 | 11.568182 |
7 | 游戏 | 1326.488491 | 61.112532 | 0.352100 | 0.491810 | 0.280968 | 0.472393 | 0.391268 | 0.222308 | 0.644682 | 7.470588 |
8 | 生活 | 1156.425743 | 55.231023 | 0.378988 | 0.519379 | 0.208371 | 0.452810 | 0.579782 | 0.279807 | 0.540407 | 9.031353 |
9 | 知识 | 1619.988189 | 72.862205 | 0.000000 | 0.423044 | 0.378397 | 0.325064 | 0.271347 | 0.367383 | 0.428092 | 9.665354 |
10 | 美食 | 1378.214634 | 63.019512 | 0.172013 | 0.084508 | 0.000000 | 0.262113 | 0.290547 | 0.000000 | 0.309589 | 9.682927 |
11 | 舞蹈 | 1332.681818 | 61.363636 | 0.480516 | 0.454557 | 0.282799 | 0.149241 | 0.089844 | 0.339882 | 0.111528 | 8.977273 |
12 | 资讯 | 1074.046875 | 51.968750 | 0.147983 | 0.558616 | 0.150726 | 0.057147 | 0.242085 | 0.293216 | 0.269152 | 11.109375 |
13 | 音乐 | 1308.120419 | 60.717277 | 0.459867 | 0.681444 | 0.728005 | 0.575357 | 0.477918 | 0.589944 | 0.549081 | 10.685864 |
14 | 鬼畜 | 1198.692913 | 57.015748 | 1.000000 | 0.221075 | 1.000000 | 0.907866 | 1.000000 | 1.000000 | 0.424746 | 11.661417 |
In [12]:
data6.loc[14:,['分区','播放','评论','收藏','硬币','点赞','分享','弹幕']]
Out[12]:
分区 | 播放 | 评论 | 收藏 | 硬币 | 点赞 | 分享 | 弹幕 | |
---|---|---|---|---|---|---|---|---|
14 | 鬼畜 | 1.0 | 0.221075 | 1.0 | 0.907866 | 1.0 | 1.0 | 0.424746 |
可以看出,鬼畜区的视频在播放、评论、硬币、点赞、分享上都具有显著的优势。
In [13]:
data6.loc[6:6,['分区','播放','评论','收藏','硬币','点赞','分享','弹幕']]
Out[13]:
分区 | 播放 | 评论 | 收藏 | 硬币 | 点赞 | 分享 | 弹幕 | |
---|---|---|---|---|---|---|---|---|
6 | 时尚 | 0.166123 | 0.407878 | 0.755622 | 0.311115 | 0.178223 | 0.335957 | 0.529974 |
另一方面,时尚区的各项数据中,唯独“收藏”一值非常的高。实际上,这是得益于时尚区的部分健身、锻炼视频,有着非常高的收藏量。
四、数据结论
通过以上的分析,我们可以得出以下一些结论:
1.在45期(2020.1.24)之前,随着B站用户的增多,每周必看栏目上视频的各项数据稳步上升。45期开始,由于疫情原因,加上拜年祭系列的视频,每周必看栏目的数据开始大幅上升,之后再缓慢回落。
2.可以看出,栏目中视频的播放量,在春节、国庆、元旦等假期时会有明显的增幅,这也符合我们的直观感受。
3.在各个分区中,生活、游戏、动画是B站分区里的“三幻神”,在高质量视频的总量上占据绝对优势。
4.鬼畜区的视频,平均播放、收藏、点赞均位居第一位,可见优秀的鬼畜视频很容易就可以达到“破圈”的效果。
5.时尚区的健身视频有着极高的收藏量,应了那句“看了就是做了”的调侃。娱乐区视频评论、弹幕量极多,观众更愿意去分享自己的感受。
OK搞定辽,相关数据集资源有需要的话,欢迎在评论区留言,感谢支持!!