基于对抖音短视频数据分析与可视化

您所在的位置:网站首页 抖音推荐数据分析 基于对抖音短视频数据分析与可视化

基于对抖音短视频数据分析与可视化

2024-07-14 12:26| 来源: 网络整理| 查看: 265

1、选题背景

近年来互联网的逐渐发展,智能终端也迅速崛起,抖音短视频作为引领当下手机娱乐的佼佼者,优质内容创作者日益多元,用户群体结构日趋均衡成就了今天的抖音,本项目是大数据Python爬虫—基于抖音用户数据集的可视化分析。抖音作为当下非常热门的短视频软件,其背后的数据有极高的探索价值。本项目根据1737312条用户行为数据,利用python工具进行由浅入深的内容分析,目的是挖掘其中各类信息。

2、数据

文件:/brand_kol/jlyt_brand_video.xlsx   里面包含了很多用户数据:日期、视频发布日期、视频关键词、作者、作者id、粉丝数、视频时长、曝光数、完播率、互动率、点赞、评论、收藏、视频链接等。

数据来源:Python网络爬取获得文件:/brand_kol/jlyt_brand_video.xlsx

3、数据信息查看

导入数据库

读取数据

df = pd.read_excel("C://爬虫/brand_kol/jlyt_brand_video.xlsx")df.head()

查看数据属性

df.info()

数据去重

print('去重前:',df.shape[0],'行数据')print('去重后:',df.drop_duplicates().shape[0],'行数据')

 无重复数据

缺失值查看

print(np.sum(df.isnull()))

 变量类型转换

发布日期和日期转为时间变量,id转为字符串,并把小数点去掉。

df['日期'] = df['日期'].astype('datetime64[ns]')df['发布日期'] = df['发布日期'].astype('datetime64[ns]')df['id'] = df['id'].astype('str')df['达人'] = df['达人'].astype('str')

再次查看数据属性

4、数据可视化

对抖音的基本信息的可视化,面向用户,创作者以及视频内容三个维度进行,构建图像,偏于更好的了解用户信息,创作者、以及内容。

观看时间

h_num = round((df.groupby(['时长']).count()['id']/100),1).to_list()h = list(df.groupby(['时长']).count().index)

不同时间观看数量分布图

chart = Line()chart.add_xaxis(h)chart.add_yaxis('观看数/(万)',h_num, areastyle_opts=opts.AreaStyleOpts(color = '#1AF5EF',opacity=0.3), itemstyle_opts=opts.ItemStyleOpts(color='black'), label_opts=opts.LabelOpts(font_size=12))chart.set_global_opts(legend_opts=opts.LegendOpts(pos_right='10%',pos_top='2%'), title_opts=opts.TitleOpts(title="不时间观看数量分布图",pos_left='40%'),)chart.render_notebook()

根据不同时间的观看视频数量来看,前期是用户使用的高峰期,在用户高浏览的时段进行广告的投放,曝光率更高,在高峰段进行优质内容的推荐,效果会更好。

互动率/完播率分布图

left = df.groupby(['时长']).sum()[['完播率','互动率']]right = df.groupby(['时长']).count()['id']per = pd.concat([left,right],axis=1)per['完播率_radio'] = round(per['完播率']*100/per['id'],2)per['互动率_radio'] = round(per['互动率']*100/per['id'],2)x = list(df.groupby(['时长']).count().index)y1 = per['完播率_radio'].to_list()y2 = per['互动率_radio'].to_list()

#建立一个基础的图形chart1 = Line()chart1.add_xaxis(x)chart1.add_yaxis('完播率/%',y1,is_smooth=True,label_opts=opts.LabelOpts(is_show=False),is_symbol_show = False, linestyle_opts=opts.LineStyleOpts(color='#F6325A',opacity=.7,curve=0,width=2,type_= 'solid' ))chart1.set_global_opts(yaxis_opts = opts.AxisOpts(min_=5,max_=30))chart1.extend_axis(yaxis=opts.AxisOpts(min_=0.4,max_=3))#叠加折线图chart2 = Line() chart2.add_xaxis(x)chart2.add_yaxis('点赞率/%',y2,yaxis_index=1,is_smooth=True,label_opts=opts.LabelOpts(is_show=False),is_symbol_show = False, linestyle_opts=opts.LineStyleOpts(color='#1AF5EF',opacity=.7,curve=0,width=2,type_= 'solid' ))chart1.overlap(chart2) chart1.set_global_opts(legend_opts=opts.LegendOpts(pos_right='10%',pos_top='2%'), title_opts=opts.TitleOpts(title="点赞/完播率分布图",pos_left='40%'),)

chart1.render_notebook()

关注到互动率和完播率,这两个与用户粘性、创作者收益有一定关系的指标。15点时两个指标的小高峰,结合观看数量与时间段的分布图,大致猜测15点深度用户较多。

每周观看

df['weekday'] = df['发布日期'].dt.weekdayweek = df.groupby(['weekday']).count()['id'].to_list()df_pair = [['周一', week[0]], ['周二', week[1]], ['周三', week[2]], ['周四', week[3]], ['周五', week[4]], ['周六', week[5]], ['周日', week[6]]]

chart = pie()chart.add('', df_pair,radius=['40%', '70%'],rosetype='radius',center=['45%', '50%'],label_opts=opts.LabelOpts(is_show=True,formatter = '{b}:{c}次'))chart.set_global_opts(visualmap_opts=[opts.VisualMapOpts(min_=200000,max_=300000,type_='color', range_color=['#1AF5EF', '#F6325A', '#000000'],is_show=True,pos_top='65%')], legend_opts=opts.LegendOpts(pos_right='10%',pos_top='2%',orient='vertical'), title_opts=opts.TitleOpts(title="一周内播放分布图",pos_left ='35%'),)

chart.render_notebook()

可以看出周一到周三观看的人数较多

观看路径

df.groupby(['视频链接']).count()['id']

观看途径主要为1

视频时长

time = df.drop_duplicates(['id'])[['id','时长']]time = time.groupby(['时长']).count()x1 = list(time.index)y1 = time['id'].tolist()

不同时长作品分布图

chart = bar()chart.add_xaxis(x1)chart.add_yaxis('视频时长对应视频数', y1, color='#1AF5EF', itemstyle_opts={'barBorderRadius':[60, 60, 20, 20]}, label_opts=opts.LabelOpts(font_size=12, color='black'))chart.set_global_opts(datazoom_opts=opts.DataZoomOpts( range_start=0,range_end=50,orient='horizontal',type_='slider'), visualmap_opts=opts.VisualMapOpts(max_=100000,min_=200,is_show = False,type_='opacity',range_opacity=[0.4, 1]), legend_opts=opts.LegendOpts(pos_right='10%',pos_top='2%'), title_opts=opts.TitleOpts(title="不同时长作品分布图",pos_left='40%'))

chart.render_notebook()

视频时长主要集中在9—10秒,体现了抖音短视频“短”的特点。

整体互动、完播

like_per = 100*np.sum(df['互动率'])/len(df['互动率'])finish_per = 100*np.sum(df['完播率'])/len(df['完播率'])

gauge = Gauge()gauge.add("",[("视频互动率", like_per),['完播率',finish_per]],detail_label_opts=opts.LabelOpts(is_show=False,font_size=18), axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts( color=[(0.3, "#1AF5EF"), (0.7, "#F6325A"), (1, "#000000")],width=20)))gauge.render_notebook()

内容整体完播率非常接近40%,而互动率在1%左右。

全文代码:

5、 总结

分析视频时长、用户信息、作者信息、作品信息跟时间有关新,随时间的变化产生变化趋势。根据不同时间的观看视频数量来看,前期是用户使用的高峰期。大致猜测15点深度用户较多。视频时长主要集中在9—10秒。我们可以分析得出  1、在用户高浏览的时段进行广告的投放,使得曝光率更高,在高峰段进行优质内容的推荐,效果会更好  2、关注深度用户特点,思考如何增加普通用户的完播、互动。创作者选择在周一至周三这几天分布可能会收获更多的观看数量。3、考虑拓宽各个观看渠道,增加总体播放量和产品使用度、非主渠道观看,制定策略提升转化,将流量引入主渠道、针对主要渠道内容进行商业化策略投放,效率更高。4、官方提供9/10秒专用剪视频模板,提高创作效率、创作者关注创意浓缩和内容提炼、视频分布在这两个时间点的爆发也能侧面反映用户刷视频的行为特征  5、用户更多是“刷”视频,挖掘吸引力和作品连贯性,能更好留住用户、互动功能挖掘不够,可尝试进行ABtest,对点赞按钮增加动画,测试是否会提升互动率。

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3