文章目录
- 1.数据概述
- 2.数据清洗
-
- 2.1缺失值
- 2.2重复数据
- 2.3修改列名
- 2.4数据的对象转化
- 3.数据分析与可视化
-
- 3.1统计日播放量,日用户量,日作者量和日作品量
- 3.2绘图
- 3.3分析top50作者对平台的影响
- 3.4作品来源分析
- 3.5作品时长分析
- 3.3作品发布时间分析
- 4.总结
-
1.数据概述
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
plt.rcParams["font.family"] = "SimHei"
plt.rcParams["axes.unicode_minus"] = False
data=pd.read_csv('./data/douyin_dataset.csv')
data
![day14-抖音用户数据分析_第1张图片](http://img.e-com-net.com/image/info8/20ae5207ee034e98a522db2ad844bd51.jpg)
- 字段含义
- 第一列是未定义的字段, 是顺序的, 但是不连续, 可能是过处理以后的数据集
- uid:用户id
- user_city:用户所在城市
- item_id:作品id
- author_id:作者id
- item_city:作品城市
- channel:观看到该作品的来源
- finish:是否浏览完作品
- like:是否对作品点赞
- music_id:音乐id
- duration_time:作品时长 (秒)
- real_time:作品发布时间
- H:当前小时
- date:当前日期
2.数据清洗
data.info()
![day14-抖音用户数据分析_第2张图片](http://img.e-com-net.com/image/info8/ad189994f4f545cab17ef83eb1621ef1.jpg)
2.1缺失值
data.isnull().sum()
![day14-抖音用户数据分析_第3张图片](http://img.e-com-net.com/image/info8/cc9fac7a045e4a67a976d3cdbdc3d3e5.jpg)
2.2重复数据
data.duplicated().sum()
![无重复数据](http://img.e-com-net.com/image/info8/085258b22e6e477a9dbacbf0ed523b98.jpg)
2.3修改列名
colNameDict = {
'Unnamed: 0': 'ID',
'uid': '用户id',
'user_city': '用户所在城市',
'item_id': '作品id',
'author_id': '作者id',
'item_city': '作品城市',
'channel': '观看到该作品的来源',
'finish': '是否浏览完作品',
'like': '是否对作品点赞',
'music_id': '音乐id',
'duration_time': '作品时长 s',
'real_time': '作品发布时间',
'H': '当前小时',
'date': '当前日期'
}
data = data.rename(columns=colNameDict)
data
![day14-抖音用户数据分析_第4张图片](http://img.e-com-net.com/image/info8/858a5388e3514d4caee93b1bfdf93a28.jpg)
2.4数据的对象转化
data['作品发布时间']=pd.to_datetime(data['作品发布时间'])
data['当前日期']=pd.to_datetime(data['当前日期'])
data
data.info()
![day14-抖音用户数据分析_第5张图片](http://img.e-com-net.com/image/info8/5c978581d0f94cdb8c3e498012ec501b.jpg)
3.数据分析与可视化
3.1统计日播放量,日用户量,日作者量和日作品量
df_group=data.groupby(by='当前日期')
"""日播放量"""
df_id=df_group['ID'].count()
df_id
"""日用户量"""
df_uid=df_group['用户id'].nunique()
df_uid
"""日作者量"""
df_author=df_group['作者id'].nunique()
df_author
"""日作品量"""
df_item=df_group['作品id'].nunique()
df_item
3.2绘图
plt.figure(figsize=(20,12),dpi=100)
x=df_id.index
ax1=plt.subplot(411)
plt.plot(x,df_id.values)
plt.ylabel('日播放量')
plt.title('统计日播放量,日用户量,日作者量,日作品量')
plt.subplot(412, sharex=ax1)
plt.plot(x, df_uid.values)
plt.ylabel('日用户量')
plt.subplot(413, sharex=ax1)
plt.plot(x, df_author.values)
plt.ylabel('日作者量')
plt.subplot(414, sharex=ax1)
plt.plot(x, df_item.values)
plt.ylabel('日作品量')
plt.savefig('./data/抖音日数据统计图2.png')
![day14-抖音用户数据分析_第6张图片](http://img.e-com-net.com/image/info8/ee2e9af4a2ae4cd0a1d7b736082653f5.jpg)
data['作品id'].value_counts()
![day14-抖音用户数据分析_第7张图片](http://img.e-com-net.com/image/info8/69f231502e0e41399384e11ef8540e78.jpg)
3.3分析top50作者对平台的影响
author_50 = data['作者id'].value_counts().iloc[:50]
author_50
cols_outhor = author_50.index
cols_outhor
item_count = data.groupby('作者id')['作品id'].nunique()[cols_outhor]
item_count
authou_star_mean = data.groupby('作者id')['是否对作品点赞'].mean()[cols_outhor]
authou_star_mean
author_player = data['作者id'].value_counts().sort_values(ascending=False)[cols_outhor] / len(data['ID'])
author_player
"""绘图"""
x = [str(i) for i in list(author_50.index)]
fig, ax1 = plt.subplots(figsize=(18, 8))
color = 'blue'
ax1.bar(x, item_count.values, color=color)
ax1.set_xlabel('作者id')
ax1.set_ylabel('作品数量', color=color)
ax1.tick_params(axis='y', labelcolor=color)
ax2 = ax1.twinx()
color = 'red'
ax2.plot(x, authou_star_mean.values, color=color)
ax2.set_ylabel('作品点赞平均数', color=color)
ax2.tick_params(axis='y', labelcolor=color)
ax3 = ax2.twinx()
color = 'green'
ax3.plot(x, author_player.values, color=color)
ax3.set_ylabel('作品播放率', color=color)
ax3.tick_params(axis='y', labelcolor=color)
![day14-抖音用户数据分析_第8张图片](http://img.e-com-net.com/image/info8/99db53fbdafa4fd1afed09c65e71cdd1.jpg)
3.4作品来源分析
"""作品来源统计"""
channel = data['观看到该作品的来源'].value_counts()
channel
![day14-抖音用户数据分析_第9张图片](http://img.e-com-net.com/image/info8/46d7bb67899447378e886fefdb59f78b.jpg)
plt.pie(
x=channel.values,
labels=[f'{char}渠道' for char in channel.index],
autopct='%.2f%%'
)
![day14-抖音用户数据分析_第10张图片](http://img.e-com-net.com/image/info8/85101b7b40c840c79ceb06468a98721d.jpg)
music_10 = data['音乐id'].value_counts().head(10)
music_10
x = [str(char) for char in music_10.index]
plt.bar(x, music_10.values)
![day14-抖音用户数据分析_第11张图片](http://img.e-com-net.com/image/info8/2d3eb39fa5f94454b26b4d9e995bf6a1.jpg)
str(music_10.index)
music_10.values
![在这里插入图片描述](http://img.e-com-net.com/image/info8/3adb81108b3c4525a83d60c23153ea74.jpg)
3.5作品时长分析
data_time = data.groupby('作品时长 s')['用户id'].count()
data_time_item = data.groupby('作品时长 s')['作品id'].nunique()
data_time_item
![day14-抖音用户数据分析_第12张图片](http://img.e-com-net.com/image/info8/800eec06cb9d4607bda314a22ddea5b7.jpg)
"""绘图"""
fig, ax1 = plt.subplots(figsize=(18, 8))
color = 'red'
ax1.set_title('作品不同时长和播放量与作品分布情况')
ax1.set_xlabel('时长/s')
ax1.set_ylabel('播放量', color=color)
ax1.plot(data_time.index, data_time.values, color=color)
ax2 = ax1.twinx()
color = 'blue'
ax2.set_ylabel('作品量', color=color)
ax2.plot(data_time_item.index, data_time_item.values, color=color)
ax2.set_xlim(0, 50)
![day14-抖音用户数据分析_第13张图片](http://img.e-com-net.com/image/info8/26913cbb7bd84f1d96e46a1926b7f638.jpg)
3.3作品发布时间分析
data_time = data.groupby('当前小时')['ID'].count()
data_time
data_time_item = data.groupby('当前小时')['作品id'].nunique()
data_time_item
![day14-抖音用户数据分析_第14张图片](http://img.e-com-net.com/image/info8/4de7dfeb286c430fa47495d266fe02d4.jpg)
"""绘图"""
fig, ax1 = plt.subplots(figsize=(18, 8))
color = 'red'
ax1.set_title('作品不同发布时间(24H)的播放量与作品数量的分布情况')
ax1.set_xlabel('发布时间(H)')
ax1.set_ylabel('播放量', color=color)
ax1.plot(data_time.index, data_time.values, color=color)
ax2 = ax1.twinx()
color = 'blue'
ax2.set_ylabel('作品量', color=color)
ax2.plot(data_time_item.index, data_time_item.values, color=color)
![day14-抖音用户数据分析_第15张图片](http://img.e-com-net.com/image/info8/c154c9d555db4392b614f48513d8a8c5.jpg)
4.总结
4.1平台
- 增加推广活动: 吸引新用户, 维持老用户
- 增加作者激励机制: 刺激作者发布作品
- 可以考虑拓展流量渠道: 吸引新用户加入
4.2作者
- 渠道: 0
- 背景音乐: 数量排名前十的背景音乐ID分别是:22、220、25、68、110、33、468、57、43、238
- 作品时长: 最好在7-12S左右, 不要超过22左右
- 作品发布时间: 19-0-5, 在这个时间段内发布作品流量池会比较大
- 积极参加平台活动