作者 | Mika,数据 | 真达

后期 | Mika、泽龙

责编 | 郭芮

来源 | CDA数据分析师

今天我们来聊聊把生活过成诗的李子柒。

“李家有女,人称子柒。”如果说到当下最火的网红,想必很多人都会想到李子柒。

日出而作,日落而息,看似平淡无奇的日子,李子柒却总能过成一首诗、一幅画。

三月桃花熟了,采来酿桃花酒。四月枇杷成熟,酿枇杷酒…随着不同时令季节,做出不同的美食,看过李子柒视频的人,无一不对那视频里的古风田园生活向往憧憬着,同时也带给了无数人治愈的力量。

目前在B站上,李子柒共有579万的粉丝。入驻到现在仅仅发布了共125条视频,但随便翻翻视频列表,几乎每个视频都是爆款。

那么,她的这些视频都有些什么特点,播放量最高的视频是哪个?今天我们就带你用数据来解读李子柒。

“把生活过成诗” ,李子柒的视频为什么这么吸引人?

我们用Python对李子柒在B站上发布的125个视频进行了分析。分析流程包括以下这三个步骤:

  • 数据读入

  • 数据清洗

  • 数据可视化

首先让我们看到分析结果:

视频各年发布数量

先看到李子柒在B站上各年发布的视频数量。

从2016年7月开始,李子柒在B站发布了第一个视频。根据统计,在2016年她共发布了14个视频。2017-2019年这三年发布的视频数量差不多,都是在34条左右,平均下来每个月发布2.8个视频。截止到目前为止,在2020年发布了8个视频。

视频各月发布数量 

大家都说在李子柒的视频中可以感受到一年四季的变化,那么她在哪些月份发布的视频最多呢?

分析发现,其中夏季的视频明显高于其他季节,特别是8月份,在全部125个视频中就有26个视频在8月发布,占比20%。其次,秋季也是李子柒视频高产的季节,9-11月共发布36个视频。

视频发布时间线

在视频发布时间上有什么特点呢?

通过对李子柒视频发布时间线的分析,我们发现有四个发布视频的高峰时间,分别是中午12点,下午4点,下午6点,以及晚上9点。其中晚上九点发布的视频最多,共有14个。

视频类型占比

在视频类型上,当然美食是最多的了,占比高达87.2%。其次是手工类型的视频,占比12%。最少的是美妆视频,在目前发布的125个视频仅有1个是美妆类型的。

视频排行榜表现

在所有125个视频中,有72个登上了B站日排行榜。其中进入前10名的共有7个,其次是50-100名的,有12个视频。10-50名和100名以上的视频最多,均为53个。

各类视频数据平均表现

下面再看到李子柒视频各类数据平均表现。

其中视频的平均弹幕数为8361条,点赞数为52965个,投币为32690个。收藏数为8455个,平均转发为5652次。

哪些视频播放量最高?哪些视频弹幕互动最多呢?

播放量TOP10视频

让我们分别看看,首先是播放量最高视频top10榜单,播放最多的视频是《听说爱吃螺蛳粉的朋友,都很可爱阿!》,播放量达到了526万余次。看来螺蛳粉果然是妥妥的国民级网红小吃啊。

这个视频的弹幕中都在说些什么?

可以看到,在播放量最高的螺蛳粉视频中,弹幕中讨论频率最高的就是各种食材啦,比如"田螺"、"螺蛳"、"豆角"、"辣椒"、"豇豆"等等。还有"广西"这个螺蛳粉的原产地也被提及。有意思的是,同样拍了螺蛳粉主题的美食区up主比如"蛋黄派"也在弹幕中被提到。

弹幕数TOP10视频

然后是弹幕最多视频top10,弹幕最多的视频是《所以这个视频就叫辣椒的一生》总弹幕数达到4万余条。

这个视频的弹幕中都在说些什么?

这个视频的弹幕特别有意思,弹幕中讨论最多的就是各种许愿相关的词了,比如"上岸"、"考上"、"考研"、"成功"、"顺利"、"加油"等词,被提到的频率最高。

我们再分析下李子柒的视频标题,她的视频标题比较有特点,基本都是【关键词】+简单描述。比如:【小麦的一生】一株小麦,变化出扎根在每个人记忆里的味道。

视频标题关键词词云

我们先看到关键词的词云特点,可以看到关键词中除了"李子柒","桃花"、"腊味"、"豌豆"都是出现频率特别高的食材。同时"手工"也是高频词。其次某种食材的"一生",也是李子柒热衷拍摄的主题。

视频标题描述词云

那么视频标题描述上有什么特点呢?

分析发现"味道"出现的频率最高,远远超出其他词。其次,"夏天"、"千年"、"家里"、"记忆里"等词也频频出现。

教你用Python分析李子柒的视频都在拍些什么?

下面让我们看到关键的分析步骤:

我们Python获取了B站上李子柒发布的125个视频相关信息,进行了以下分析,分析流程如下:

  • 数据读入

  • 数据清洗

  • 数据可视化

数据读入

首先读入分析所用的数据集,本数据集一共包含125个样本,11个字段,字段含义为:视频标题、一级分类、二级分类、发布时间、最高全站排名、总播放数、历史累计弹幕、点赞、投币、收藏和分享数。数据预览如下:

# 导入包
import numpy as np
import pandas as pd
import re # 读入数据
df = pd.read_excel('./data/李子柒视频数据.xlsx')
df.head()

数据清洗

此部分我们初步对以下信息进行简单的处理,其中包含:

  • title:提取主题和介绍

  • top_rank:提取数值

  • view_num:提取数值

  • dm_num: 提取数值

  • dianzan: 计算数值

  • toubi: 计算数值

  • shoucang:计算数值

  • zhuanfa:计算数值

# 定义转换函数
def transform_num(x):str1 = str(x)if '万' in str1:return float(str1.strip('万'))*10000else:return float(str1)  # 提取数据
df['title_1'] = df.title.str.extract('【(.*?)】.*')
df['title_2'] = df.title.str.split('】').str[-1]
df['top_rank'] = df.top_rank.str.extract('最高全站日排行(\d+)名')
df['view_num'] = df.view_num.str.extract('(\d+)')
df['dm_num'] = df.dm_num.str.extract('(\d+)')
df['dianzan'] = df.dianzan.apply(lambda x: transform_num(x))
df['toubi'] = df.toubi.apply(lambda x: transform_num(x))
df['shoucang'] = df.shoucang.apply(lambda x: transform_num(x))
df['zhuanfa'] = df.zhuanfa.apply(lambda x: transform_num(x))  # 转换类型
df['view_num'] = df.view_num.astype('int')
df['dm_num'] = df.dm_num.astype('int')
df['publish_time'] = pd.to_datetime(df['publish_time'])

经过处理之后的数据如下所示:

df.head(2)

数据可视化

此处我们将进行以下部分的可视化分析,首先导入所需包,其中pyecharts用于绘制动态可视化图形,stylecloud包用于绘制词云图。关键部分代码如下:

# 导出所需包
from pyecharts.charts import Pie, Line, Tab, Map, Bar, WordCloud, Page
from pyecharts import options as opts
from pyecharts.globals import SymbolType
import stylecloud

视频各年发布数量:

# 发布数量
pub_year = df.publish_time.dt.year.value_counts().sort_index()# 条形图
bar0 = Bar(init_opts=opts.InitOpts(width='1350px', height='750px'))
bar0.add_xaxis(pub_year.index.tolist())
bar0.add_yaxis('', pub_year.values.tolist())
bar0.set_global_opts(title_opts=opts.TitleOpts(title='B站李子柒视频各年发布数量'), visualmap_opts=opts.VisualMapOpts(max_=50),)
bar0.render()

视频各月发布数量:

pub_month = df.publish_time.dt.month.value_counts().sort_index()# 条形图
bar = Bar(init_opts=opts.InitOpts(width='1350px', height='750px'))
bar.add_xaxis([str(i)+'月'for i in pub_month.index.tolist()])
bar.add_yaxis('', pub_month.values.tolist())
bar.set_global_opts(title_opts=opts.TitleOpts(title='B站李子柒视频各月发布数量'), visualmap_opts=opts.VisualMapOpts(max_=30),)
bar.render() 

视频发布时间线:

# 发布时间点分布
pub_hour = df.publish_time.dt.hour.value_counts().sort_index()# 产生数据
x1_line1 = [i+'点' for i in pub_hour.index.values.astype('str').tolist()]
y1_line1 = pub_hour.values.tolist()# 绘制面积图
line1 = Line(init_opts=opts.InitOpts(width='1350px', height='750px'))
line1.add_xaxis(x1_line1)
line1.add_yaxis('', y1_line1,markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_='max', name='最大值'),opts.MarkPointItem(type_='min', name='最小值')]))
line1.set_global_opts(title_opts=opts.TitleOpts('B站李子柒视频日发布时间线'), visualmap_opts=opts.VisualMapOpts(max_=20))
line1.set_series_opts(label_opts=opts.LabelOpts(is_show=False), linestyle_opts=opts.LineStyleOpts(width=3))
line1.render()

发布视频类型占比:

# 视频类型占比
cat_num = df.cat2.value_counts()# 产生数据对
data_pair = [list(z) for z in zip(cat_num.index.tolist(), cat_num.values.tolist())]# 绘制饼图
# {a}(系列名称),{b}(数据项名称),{c}(数值), {d}(百分比)
pie1 = Pie(init_opts=opts.InitOpts(width='1350px', height='750px'))
pie1.add('', data_pair=data_pair, radius=['35%', '60%'])
pie1.set_global_opts(title_opts=opts.TitleOpts(title='B站李子柒发布视频类型占比'), legend_opts=opts.LegendOpts(orient='vertical', pos_top='15%', pos_left='2%'))
pie1.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:{d}%"))
pie1.render()

有排名数据视频表现:

top_rank_num = df.top_rank.dropna().astype('int')cut_bins = [1,10,30,50,100]
top_num = pd.cut(top_rank_num, bins=cut_bins, labels=['前10名', '10-30名', '30-50名', '50-100名']).value_counts()# 数据对
data_pair_2 = [list(z) for z in zip(top_num.index.tolist(), top_num.values.tolist())]# 饼图
pie2 = Pie(init_opts=opts.InitOpts(width='1350px', height='750px'))
pie2.add('', data_pair=data_pair_2, radius=['35%', '60%'])
pie2.set_global_opts(title_opts=opts.TitleOpts(title='B站李子柒有排名数据视频表现'), legend_opts=opts.LegendOpts(orient='vertical', pos_top='15%', pos_left='2%'))
pie2.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:数量:{c}\n占比:{d}%"))
pie2.render()

视频各类数据平均表现:

df_num = df[['view_num', 'dm_num', 'dianzan', 'toubi', 'shoucang', 'zhuanfa']].mean() # 条形图
bar3 = Bar(init_opts=opts.InitOpts(width='1350px', height='750px'))
bar3.add_xaxis(['弹幕数', '点赞数', '投币数', '收藏数', '转发数'])
bar3.add_yaxis('', df_num.values.tolist()[1:])
bar3.set_global_opts(title_opts=opts.TitleOpts(title='B站李子柒视频各类数据平均表现'), visualmap_opts=opts.VisualMapOpts(max_=50000),)
bar3.render()

播放数Top10视频:

# 最多播放top10
view_top10 = df.sort_values('view_num', ascending=False).head(10)[['title', 'view_num']]
view_top10 = view_top10.sort_values('view_num')# 柱形图
bar1 = Bar(init_opts=opts.InitOpts(width='1350px', height='750px'))
bar1.add_xaxis(view_top10.title.values.tolist())
bar1.add_yaxis('', view_top10.view_num.values.tolist())
bar1.set_global_opts(title_opts=opts.TitleOpts(title='B站李子柒播放数Top10视频'), yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(position='inside')),visualmap_opts=opts.VisualMapOpts(max_=3000000),)
bar1.set_series_opts(label_opts=opts.LabelOpts(position='right'))
bar1.reversal_axis()
bar1.render()

弹幕数Top10视频:

# 弹幕最多top10
dm_top10 = df.sort_values('dm_num', ascending=False).head(10)[['title', 'dm_num']]
dm_top10 = dm_top10.sort_values("dm_num")# 柱形图
bar2 = Bar(init_opts=opts.InitOpts(width='1350px', height='750px'))
bar2.add_xaxis(dm_top10.title.values.tolist())
bar2.add_yaxis('', dm_top10.dm_num.values.tolist())
bar2.set_global_opts(title_opts=opts.TitleOpts(title='B站李子柒弹幕数Top10视频'), visualmap_opts=opts.VisualMapOpts(max_=40999),)
bar2.set_series_opts(label_opts=opts.LabelOpts(position='right'))
bar2.reversal_axis()
bar2.render()

视频标题词云图:

import stylecloudstylecloud.gen_stylecloud(text=' '.join(word_num_selected),  #text需要是str类型palette='tableau.Tableau_10',collocations=False,font_path=r'‪C:\Windows\Fonts\msyh.ttc',  # 字体icon_name='fas fa-heart',size=768,output_name='李子柒视频标题词云图.png'  # 生成图片)

声明:本文经授权转载,版权归原作者所有。

【END】

更多精彩推荐
☞开源公司 HashiCorp 国内险遭禁,阿里、华为也要做好 B 计划?
☞航拍高手、吉他十级,6500+Star 开源项目作者,后浪程序员给力!
☞面试官:你的 SQL 一般有几个 join?| 原力计划
☞基于深度学习和传统算法的人体姿态估计,技术细节都讲清楚了
☞面试中遇到这 3 个SQL问题,最容易掉坑里!
☞好扑科技结合区块链行业发展趋势,重磅推出“好扑区块链合伙人”计划
点击阅读原文,精彩继续。
你点的每个“在看”,我都认真当成了喜欢

125 个视频成就千万级网红,Python 告诉你李子柒都在拍些什么?相关推荐

  1. python125免费教程,125 个视频成就千万级网红,Python 告诉你李子柒都在拍些什么?...

    原标题:125 个视频成就千万级网红,Python 告诉你李子柒都在拍些什么? 作者 |Mika,数据 |真达 后期 |Mika.泽龙 责编 | 郭芮 来源 | CDA数据分析师 今天我们来聊聊把生活 ...

  2. 仅拍125个视频成为千万级网红?Python:看视频都在拍些什么?

    Show me data,用数据说话 今天我们聊一聊 李子柒 "李家有女,人称子柒."如果说到当下最火的网红,想必很多人都会想到李子柒. 日出而作,日落而息,看似平淡无奇的日子,李 ...

  3. 仅拍125个视频就成为千万级网红? Python告诉你:李子柒的网红路

    "李家有女,人称子柒."如果说到当下最火的网红,想必很多人都会想到李子柒. 日出而作,日落而息,看似平淡无奇的日子,李子柒却总能过成一首诗.一幅画. 三月桃花熟了,采来酿桃花酒.四 ...

  4. 仅拍125个视频就成为千万级网红? 数据告诉你李子柒怎么做到的?

    CDA数据分析师 出品 作者:Mika 数据:真达 后期:Mika.泽龙 [导语]:今天我们来聊聊把生活过成诗的李子柒.Python技术部分请看第二部分.Show me data,用数据说话. &qu ...

  5. 从翻唱到原创,抖音千万粉丝网红郭聪明是如何养成的?

    入驻抖音不到 3年,粉丝已经高达4168w,凭借 248条作品获得5.2亿点赞.这就是抖音排行榜上的网红达人--郭聪明. 他曾凭一条视频涨粉400万,火遍全网.这个蒙古男孩,是怎么从平平无奇的音乐爱好 ...

  6. micropython视频_零基础如何优雅入门“网红”Python?小白必看的MicroPython视频合集:从入门到精通!...

    零基础如何优雅入门"网红"Python?小白必看的MicroPython视频合集:从入门到精通! 若问时下最火的一门编程语言是什么?答案一定是Python. 就连高考都开始考Pyt ...

  7. 【情感打分+情感判定+词云图】python情感分析李子柒频道视频热门英文评论

    目录 一.事件背景 二.python代码讲解 三.同步讲解视频 四.获取python源码文件 一.事件背景 今天是2021.12.2日,距离李子柒断更已经4个多月了,这是我在YouTube李子柒油管频 ...

  8. 美国网红python微博_Python有趣|微博网红大比拼

    前言 在之前的分享中,我们已经学会了简书和知乎小姐姐的爬虫.今天罗罗攀把魔爪伸向了微博网红们,我们找找谁是最美网红.今天的流程如下: 网页分析 这里的微博网红链接:https://weibo.com/ ...

  9. 美国网红python微博_Python有趣|微博网红大比拼 !

    前言 在之前的分享中,我们已经学会了简书和知乎小姐姐的爬虫.今天罗罗攀把魔爪伸向了微博网红们,我们找找谁是最美网红.今天的流程如下: 网页分析 这里的微博网红链接:https://weibo.com/ ...

最新文章

  1. C语言求阶乘(附完整源码)
  2. 开始复习下sql,常用SQL语句示例(一)
  3. 高等数学下-赵立军-北京大学出版社-题解-练习10.4
  4. 论文小综 | 文档级关系抽取方法(上)
  5. 数字图像处理中的高通滤波和低通滤波
  6. AI如何提升10倍筛药效率?6月18日华为云携手中科院上海药物所揭开谜底
  7. 孤岛生存java_我的世界:一座孤岛等于拥有“全部”,这个孤岛种子非常适合生存...
  8. 桌面弹球游戏终结,含有全部代码
  9. 有时,不做什么比做什么更重要,拒绝比答应更重要
  10. CSS 颜色代码大全
  11. 2、硬件工程师之元器件学习—电阻(二)
  12. URL中经常出现的百分号22是什么意思
  13. 用文字描述给黑白照上色,这个免费网站火了!网友:比其他同类都好用
  14. 乖乖小网安-网络安全之ARP初探
  15. python基础以及面向对象
  16. 孑然一身,离人何曾是归人
  17. 一张图看懂苹果MacBook所有屏幕分辨率
  18. iftop相关参数及说明
  19. 腾讯会议突围背后:端到端实时语音技术是如何保障交流通畅的?
  20. javascript教程系列-1.JavaScript基础

热门文章

  1. 编译安装mysql5.7.24踩的坑
  2. centos 部署.netcore 开发环境
  3. C#学习笔记-原型模式
  4. vue从入门到开发--2-基本结构
  5. Robot Framework中经常用的第三方库的安装方法
  6. mysql无法启动服务,错误1067
  7. 跨域iframe高度自适应(兼容IE/FF/OP/Chrome)
  8. 矩池云上如何修改cuda版本
  9. 前端html+css+javascript
  10. WIN10+Ubuntu16.4 双系统,遇到的坑