YouTube视频数据分析报告

一.数据来源及内容

Kaggle 是一个流行的数据科学竞赛平台。由 Goldbloom 和 Ben Hamner 创建于 2010 年(官网地址:Your Home for Data Science)。

数据来源于kaggle的公开数据。该数据集包含有关YouTube每日热门视频的数据。Kaggle提供的数据集包括了4个国家的热门Youtubo视频的每日记录,每个国家的数据文件为一个csv文件以及一个json文件。(CA加拿大 DE 德国 GB 英国 US 美国)

Csv文件:

Video_id 视频id 字符串
Trending_date 视频上榜的日期 字符串
title 视频标题 字符串
Channel_titie 所属频道标题 字符串
Category_id 所属类别编号 整型
Publish_time 视频发布时间 时间类型
tags 视频标签 字符串
views 观看次数 整型
likes 点赞次数 整型
dislikes 被踩次数 整型
Comment_count 评论次数 整型
Comments_disabled 评论是否被关闭 布尔值
Ratings_disabled 打分是否关闭 布尔值
Video_error_or_removed 视频出错或者被删 布尔值
description 视频详情 字符串

Json文件:

包含了category_id用于Csv文件的category_id做匹配,从而获取category的标题。

数据问题简单分析

1)统计所得

1、利用极值可以解决诸如以下的问题:

哪类视频播放量最高/最低?
哪类视频评论率最高/最低?
哪类视频的点赞率最高/最低?

2、利用箱型图可以描述不同类别的总体情况:

各类视频的观看数、点赞数、评论数的总体情况

3、利用正态分布可以:

得知观看数、点赞数、不喜欢数、评论数等分别是否符合正态分布,
进而可以再验证它们之间是否存在线性相关

2)问题分析

1、用户最感兴趣的是什么类别的视频?最不感兴趣的是什么类别的视频?
2、视频的发布日期和被推荐日期之间是否存在某种关系?
3、视频的标签数越多越好么?视频描述越详细越好么?
4、不同类型电影的上榜数量?不同类型电影的热度如何?
5、发布时间是如何分布的?从发布到上榜的时间差?
6、不同类型之间有区别吗?标签的长短与热度有关系吗?
7、喜欢,不喜欢,评论,甚至关评论等等之间与观看有没有什么关系?
8、不同类别之间,喜欢,不喜欢,评论和观看是怎么样的?

3)重要字段

1.时间:

trending\_date(推荐日期)
publish\_time(发布时间)

2.内容类型:

channel\_title(频道)
category\_id(类型id)

3.用户反馈数据:

views(观看数)
likes(点赞数)
dislikes(不喜欢数)
comment\_count(评论数)

数据导入与预处理(本节以US数据为主)

1导包

import pandas as pd
import numpy as np
import os
import json
import csv
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib as mpl
from matplotlib import cm
from subprocess import check_output
from datetime import datetime

2 查看数据

data = pd.read_csv("C:/Users/long/Desktop/AI/USvideos.csv",index_col=0)
data.head()

3对文件内容进行预处理

#日期格式不一样,所以要对其进行日期格式的转化,这里我们用到datetime函数
data["trending_date"] = pd.to_datetime(data["trending_date"],format ="%y.%d.%m")
data["publish_time"]=pd.to_datetime(data["publish_time"],format ="%Y-%m-%dT%H:%M:%S.%fZ")
data.head()

4 为防止数据缺失造成的数据误差

5将json文件转为csv文件

import json
import csv
jsonFile = open("C:/Users/long/Desktop/AI/US_category_id.json", "r")
categoryId = json.load(jsonFile)
with open('C:/Users/long/Desktop/AI/US_category_id.csv', 'w', newline='') as f:csvWriter = csv.writer(f)csvWriter.writerow(['id', 'category'])for i in categoryId['items']:csvWriter.writerow([i['id'], i['snippet']['title']])

得到的csv文件如图:

6 接下来我们导入json文件,让其与categor_id匹配

id_to_category = {}
with open (r"C:/Users/long/Desktop/AI/US_category_id.json") as f:js = json.load(f)for category in js ["items"]:id_to_category[category["id"]] = category["snippet"]["title"]
data["category_id"] = data["category_id"].map(id_to_category)
data.head()

7提取需要的信息

data["dzb"] = data["likes"]/data["dislikes"]
data["plb"] = data["comment_count"]/data["views"]
data["djl"] = (data["dislikes"]+data["likes"])/data["views"]
data["publish_timi"] = data["publish_time"].dt.time
data["publish_ymd"] = data["publish_time"].dt.date
data.head()
1、“dzb”点赞量和不点赞量比例是一种用来衡量用户对某种类型视频的赞同与不赞同的重要指标
2、"plb",评论占比等于"comment_count"/views
3、"djl",点击率等于("likes"+"dislikes")/"views"
4、为了方便浏览次数做分析,此时我们对发布时间进行提取。

数据图像绘制及数据分析(本节以US数据为主)

1. 不同类型电影的上榜数量?

plt.figure(figsize=(16,9))
view_num=data.groupby("category").video_id.count().sort_values(ascending=False)
sns.barplot(y=view_num.index,x=view_num.values,orient="h")
plt.title("各类型上榜数量")


Entertainment娱乐版块位居第一。位居第二的是音乐版块。说明娱乐类型的视频受众比较广泛,大家都爱看,比较容易上热门。

2. 不同类型电影的热度如何?

avg_view=data.groupby("category").apply(lambda x:int(x.views.sum()/x.views.count()))
view=data.groupby("category").views.sum()
fig,axes=plt.subplots(2,1,sharex=True,figsize=(16,9))
sns.barplot(x=view.index,y=view.values,ax=axes[0]) #左图
plt.xticks(rotation=45)
sns.barplot(x=avg_view.index,y=avg_view.values,ax=axes[1])
axes[0].set_title('不同类别视频的浏览情况')
axes[1].set_title('不同类别视频平均浏览情况')
plt.show()

娱乐版块的上榜率高,但是视频浏览量总量和视频平均浏览情况,音乐类别都有所反超。数据反常的数据,为Nonprofits & Activism,非营利组织和行动主义的数据,总量少但是平均播放量位居第一

plt.figure(figsize=(16,9))
sns.boxplot(x="category",y="views",data=data)
plt.xticks(rotation=45)
plt.title("不同类别之间的观看箱型图")

|数据离散太大,箱型图并不能太直观的展现娱乐和音乐的播放上线比较高,超高播放量都是从这2个类别里出的电影整体的播放量很集中(相较于其他而言),且中位数较高,一旦上榜,其播放量必有较好的反响。music也有较好的中位数,上四分位数较高,view整体的表现较好。

作为一个新人youtube博主,选择一个平均浏览量高较高,且上榜数量较多(至少说明受众较多)的领域作为开拓较好。目标选定为娱乐,音乐,以及film&animation。

3. 发布时间是如何分布的?

plt.figure(figsize=(16,9))
data.groupby("p_h").video_id.count().plot(linewidth=6,color="g",alpha=0.6)
plt.xticks(range(0,24),range(0,24))
plt.title("发布时间")

下午15点是发布的高峰期,猜测可能是因为发布过后的几个小时(16-17点左右),是用户刷youtube的高峰期,这段时间的观看量可能是能否上热门的重要评判条件。因此可以考虑在下午15点—下午17点之间发布。

4. 从发布到上榜的时间差?不同类型之间有区别吗?

data["timedelta"]=(data["trending_date"]-data["publish_time"]).dt.days
data["time_cut"]=pd.cut(data["timedelta"],[0,1,3,5,7,3650],labels=["0-1天","1-3天","3-5天","5-7天","7以上"])
time_pie=data.groupby("time_cut").timedelta.count()
time_pie.plot(kind = "pie", autopct='%.2f%%', fontsize=20, figsize=(16, 9))
plt.title("上榜时间")
plt.show()

可以看到,有90.32%的youtube热门视频在7天之内上了热搜,其中1-3天内上热搜的占29.66%,其中3-5天上热搜的占30.21%。建议更新时长2控制在一周之内。

5. 标签的长短与热度有关系吗?

plt.figure(figsize=(16,9))
data["length"]=data.tags.apply(lambda x :len(x.split("|")))
tag_num=data.groupby("category").length.mean()
avg_view
axi=sns.barplot(x=avg_view.index,y=avg_view.values)
plt.xticks(rotation=45)
ax2=axi.twinx()
ax2=sns.lineplot(x=tag_num.index,y=tag_num.values,label="标签数量")
plt.legend()
plt.title("标签数量和平均阅读量")

可以很明显的看到,2个变量之间是没有相关性的

6. 喜欢,不喜欢,评论,甚至关评论等等之间与观看之间有没有什么关系?

data_list=[]
for i in['Music', 'Comedy', 'Entertainment', 'News & Politics','People & Blogs', 'Howto & Style', 'Film & Animation','Science & Technology']:data_list.append(data[data["category"]==i])
data_list2=[]
for i in[ 'Gaming', 'Sports', 'Pets & Animals','Travel & Events', 'Autos & Vehicles', 'Education', 'Shows','Movies']:data_list2.append(data[data["category"]==i])
category_a=pd.concat(data_list,axis=0)
category_b=pd.concat(data_list2,axis=0)
sample=category_a[['views','likes','dislikes','comment_count','category']]
sns.pairplot(sample,hue="category")
sample=category_b[['views','likes','dislikes','comment_count','category']]
sns.pairplot(sample,hue="category")

新人入坑指南
可以从娱乐,音乐,以及film&animation 三个类型的视频去切入战场。娱乐账号的上榜视频数量多,占总体上榜视频数的33%,有着非常广泛的受众,是一个很好的切入口。而音乐和film&animation的单个视频的观看量高切勿轻易踏入人和博客这个领域.这个领域分化比较严重,好的视频获赞不错,差的视频常常遭到用户的不喜欢。
下午15点是发布的高峰期,猜测可能是因为发布过后的几个小时(16-17点左右),是用户刷youtube的高峰期,这段时间的观看量可能是能否上热门的重要评判条件。因此可以考虑在下午15点—下午17点之间发布。
视频更新的间隔时间可以为7天。可以看到,有90.32%的youtube热门视频在7天之内上了热搜,其中1-3天内上热搜的占29.66%,其中3-5天上热搜的占30.21%。建议更新时长2控制在一周之内。

YouTube视频数据分析报告相关推荐

  1. 在Python中使用Seaborn和WordCloud可视化YouTube视频

    I am an avid Youtube user and love watching videos on it in my free time. I decided to do some explo ...

  2. 如何查询一个表中除某几个字段外其他所有的字段_一个小故事告诉你:如何写好数据分析报告?...

    关注并将「人人都是产品经理」设为星标 每天早 07 : 45 按时送达 给你一份数据,你能完美的出一份数据报告吗?本文结合一个小故事,来告诉大家如何写好一份数据分析报告,enjoy~ 作者:Haby ...

  3. 写好数据分析报告,数据的思路非常重要

    我比较喜欢打游戏,属于又菜又爱玩的类型. 为了提升水平,会去看一些高手的视频.每次看完高手视频,我都热血澎湃,赶紧上号准备上分. 但是,现实却告诉我,看别人玩得再6,自己上手的时候还是不行. 这不单单 ...

  4. 数据分析报告,就该这么写!超详细攻略奉上

    临近年底,做数据分析的同学们都在写各种报告.按理说,写数据分析报告是数据分析师最基本的技能,人人都该会.可怕就怕,自己辛辛苦苦写完的东西没!人!看!没人看还是好的,更怕的是 在接到众多同学求助之后,今 ...

  5. 写数据分析报告,建议部分憋到脸红,咋整?

    你不要光报数字! 要做策略性思考! 要提出可行的建议! 很多做数据的同学都被领导.同事这么吆喝过.然而,什么是策略性思考???往往一听到这种词,就有同学急不可耐的掏出<麦肯锡方法>之类的镇 ...

  6. 《十周成为数据分析师》笔记——业务线 第八节 常见互联网业务的数据分析报告的制作及用户分层模型

    互联网业务数据分析报告及用户分层模型 一.业务逻辑回顾及互联网相关指标 1.实战项目与业务逻辑回顾 数据报表(数据源)→用户画像(数据分析)→数据化运营(决策指导)→商业分析(宏观判断)→分析报告(结 ...

  7. 抖音2018大数据分析报告

    阅读文本大概需要 5.2 分钟. 一年一度的2018年抖音大数据分析报告已经发布,有哪些值得我们去挖掘的有趣现象呢,今天带领吃瓜群主一起看看. 1.从数据来看,抖音的用户活跃在12-13点,18-19 ...

  8. 如何写网络舆情数据分析报告的技巧及注意事项详解

    舆情分析其实就是对舆情信息搜集.整理.汇总.筛选.深层次加工分析的一个过程,而这个过程得出的最后结果往往是以舆情分析报告的形式呈现出来的.所以说,与其说舆情分析怎么写,倒不如说一份好的舆情分析报告是怎 ...

  9. 数据分析报告的 4 种情景

    在<数据分析报告的 3 个层级>这篇文章下面,有位读者留言:有完整的数据分析报告模板吗? 我回复说: 数据分析报告可以有千千万万个不同的模板,但是你要知道哪一个模板最适合当时的情景,这是非 ...

  10. Hadoop实战系列之MapReduce 分析 Youtube视频数据

    Hadoop实战系列之MapReduce 分析 Youtube视频数据 一.实战介绍 MapReduce 是 Hadoop 的计算框架. 在运行一个 MR 程序时,任务过程被分为两个阶段:Map 阶段 ...

最新文章

  1. 干货丨一文看懂什么是知识图谱!
  2. bootstrap 全局 CSS 样式
  3. 嵌入式入门学习笔记4:[转]什么是嵌入式底层驱动开发和嵌入式底层软件开发...
  4. Silverlight中开发和设计人员的合作文档信息
  5. java获取api接口新浪数据,新浪短网址API接口的获取以及API接口的调用文档分享...
  6. linux x86-64下,Linux x86_64下安装Flash Player 9
  7. java 字符串为空_java判断字符串为空,方法详解
  8. 全球最大电子展2018再度起航,镁客网在香港带你深度探讨人工智能
  9. 在春天,我用秋来诱惑你
  10. [NAACL16]RNN文法
  11. 三列自适应布局(圣杯布局)
  12. GB35114—⑤、附 录C
  13. vum安装mysql_Vue自动化工具(Vue-CLI)的安装
  14. bzoj3207 花神的嘲讽计划Ⅰ
  15. 串ababaaababaa的next和串ababaabab的nextval
  16. ROUGE: A Package for Automatic Evaluation of Summaries
  17. 后台执行linux命令
  18. 房卡麻将分析系列 牌局回放 之 数据设计
  19. VB和VB.NET的大致区别
  20. PCF8574AT的I2C地址和单独IO操作

热门文章

  1. 怎么在服务器上运行sql文件,数据库执行sql文件
  2. java基于JSP+Servlet的员工绩效考核系统
  3. OpenEuler简介与安装
  4. Android音视频之协议介绍
  5. cognos数据源的配置
  6. 进度条制作-GIF动画
  7. 双击鼠标触发了Ctrl+C事件
  8. 16家企业、11个领域……京东首开AI加速器,拜倒,拜倒!
  9. OCR识别身份证及营业执照图片(Java版)
  10. Java集合框架关系图