CDA数据分析师 出品
作者:Mika
数据:真达
后期:Mika
【导读】
今天教大家用Python分析B站的“打工人”视频。
Show me data,用数据说话
今天我们聊一聊 Python分析“打工人”
点击下方视频,先睹为快:
最近,“打工梗”在朋友圈持续爆火,没有人能避开来自工友的贴心问候——“早安,打工人”,与此同时“打工人”的表情包也席卷全网,铺天盖地,到处吟唱着积极向上的打工人语录。
“累吗?累就对了,舒服是留给有钱人的。早安,打工人!冷吗?冷就对了,温暖是留给开小轿车的人。早安,打工人!”
相比于先前带点“丧”的社畜梗,打工梗用昂扬积极的心态去对抗工作的焦虑,这些打工人语录带着自嘲,也是认清生活本质的解压方式,用较为轻松接地气的玩梗心态,迎接每一天的新工作。
打工梗究竟为什么突然这么火呢?之前小z在《打工人分析简报》中已经分析了各个平台打工人话题的相关数据,我们从中也受到了些启发。
今天我们就来主要分析一下B站上“打工人”的相关视频,看看这6625个视频的背后,打工梗凭什么突然刷屏网络。
我们使用Python获取,技术分析流程分为以下三个步骤:
- 网络数据获取
- 数据读入和数据清洗
- 数据可视化分析
爬虫部分代码暂略,首先导入分析所需的包并读入数据集,原数据集一共包含6625个样本,7个字段,字段含义为:分区标签、视频标题、上传时间、观看数、弹幕数、up主、视频url。
01
数据读入
代码语言:javascript复制# 导入包
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
代码语言:javascript复制# 读入数据
df = pd.read_excel('./data/B站打工人视频10-28.xlsx')
df.head()
代码语言:javascript复制print(df.shape)
(6625, 7)
02
数据预处理
此部分我们初步对原始数据进行处理,其中包含:
- 去除重复值
- view_num和danmu:单位转换
- 筛选数据
处理之后的数据如下所示:
代码语言:javascript复制def transform_unit(x_col):
"""
功能:转换数值型变量的单位
"""
# 提取数值
s_num = df[x_col].str.extract('(d .*d*)').astype('float')
# 提取单位
s_unit = df[x_col].str.extract('([u4e00-u9fa5] )')
s_unit = s_unit.replace('万', 10000).replace(np.nan, 1)
s_multiply = s_num * s_unit
return s_multiply
代码语言:javascript复制# 去重
df = df.drop_duplicates()
# 删除列
df.drop('video_url', axis=1, inplace=True)
# 转换单位
df['view_num'] = transform_unit(x_col='view_num')
df['danmu'] = transform_unit(x_col='danmu')
# 筛选时间
df = df[(df['upload_time'] >= '2020-09-01') & (df['title'].astype('str').str.contains('打工人'))]
df.head()
03
数据可视化分析
首先导入所需包,其中jieba用于中文分词,pyecharts用于绘制动态可视化图形,stylecloud包用于绘制词云图。关键部分代码如下:
代码语言:javascript复制import jieba
from pyecharts.charts import Bar, Line, Pie, Map, Scatter, Page
from pyecharts import options as opts
from pyecharts.globals import SymbolType, WarningType
WarningType.ShowWarning = False
01 打工人视频发布热度走势图
可以看到“打工人”相关视频首先出现在2020年9月5日,最初的一个月还没有引起太大的水花。在一个月后,随着打工梗逐渐深入人心,B站相关视频也出现了爆点。
10月16日,up主“老摸鱼艺术家”的《加油!打工人!》播放量突破350万。几天后,10月22日,up主“三Lu有毒”的视频《早安,打工人!》更是加上了各种打工人优秀语录,同时配上魔性的画面和声音,直接在B站爆火,目前该视频播放量已突破913万。
随后“打工人”的视频如雨后春笋般涌现,单10月27日一天就有292条视频发布。
代码语言:javascript复制time_num = df.upload_time.value_counts().sort_index()
time_num[:5]
2020-09-05 1
2020-09-08 1
2020-09-09 1
2020-09-12 1
2020-09-13 1
Name: upload_time, dtype: int64
代码语言:javascript复制# 条形图
line1 = Line(init_opts=opts.InitOpts(width='1350px', height='750px'))
line1.add_xaxis(time_num.index.tolist())
line1.add_yaxis('', time_num.values.tolist(),
markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_='min'),
opts.MarkPointItem(type_='max')])
)
line1.set_global_opts(title_opts=opts.TitleOpts(title='打工人视频发布热度走势图', pos_left='40%'),
xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate='90')),
visualmap_opts=opts.VisualMapOpts(max_=int(time_num.max()), is_show=False),
)
line1.set_series_opts(linestyle_opts=opts.LineStyleOpts(width=3),
label_opts=opts.LabelOpts(is_show=False)
)
line1.render()
02 不同分区的视频发布数量
从视频分区中可以看到,生活区以56.6%的比重占据了半壁江山。
03 不同分区的视频发布播放量
播放量方面也是生活区一枝独秀,累计达到1393万。
04 最高播放的Top10视频
那么都是哪些“打工人”视频播放量最高呢?
我们分析整理了播放量前十的视频,播放量第一是up主“三Lu有毒”的《早安,打工人!》,截止到发稿播放量已达到913万。第二是up主“老摸鱼艺术家”的《加油!打工人!》,截止到发稿播放量已达到357万。
接下来我们对播放量第一第二的“打工人”视频弹幕进行分析,看看大家都在说些什么。
05 早安,打工人!弹幕词云
弹幕中出现最多的就是“泪目”、“工人”。其中那句魔性的“靠恁娘是河南人”,也是引起了不少弹幕。魔性的狗子,激昂的语调也是让人听着十分上头,让人忍不住每天一遍,对自己说上一声“早安,打工人!”
06 《加油,打工人!》弹幕词云
“加油”、“打工人”、“真实”等都是妥妥的高频词。配上最近常被up用来二次创造的动画片《校园小子》,有“文艺复兴”那味儿了。
07 打工人标题词云图
我们最后对打工人视频出现的标题也进行了词云整理。发现标题中除了“打工人”,“早安”、“晚安”、“加油”、“日常”等正能量的词特别多,同时“快乐”、“人上人”等词也在标题中常常出现。
结语
人人都不爱打工,但人人都是打工人。
虽然这些打工人的段子里多少带着些对生活压力的自嘲和调侃,而最火的那句“早安打工人”里,怀着的也还是对新一天的期望。
加油吧,打工人!