游戏APP用户行为统计分析

文章目录

    • 1.游戏业务数据分析如图所示的用户行为数据
    • 2.数据预处理
      • 2.1加载包
      • 2.2读取数据
      • 2.3查看安装信息
      • 2.4查看注册信息
      • 2.5查看安装信息表中的最大值,最小值等基本信息。
      • 2.6查看注册信息表中的最大值,最小值等基本信息。
    • 3.数据分析
      • 3.1数据统一
      • 3.2安装信息分析
        • 3.2.1安装人数、注册人数、激活率
        • 3.2.2日安装量、安装渠道、TOP15子渠道、安装地区、是否WiFi安装、安装的手机类型统计TOP15、系统版本
      • 3.3注册信息分析
        • 3.3.1每日注册人数、用户类型、注册时段、激活时间、日新增新用户统计

1.游戏业务数据分析如图所示的用户行为数据

游戏APP用户行为统计分析_第1张图片

2.数据预处理

2.1加载包


import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

2.2读取数据


az = pd.read_excel('/home/kesci/input/game_data1910/数据源整合.xlsx',sheet_name='安装信息')
zc = pd.read_excel('/home/kesci/input/game_data1910/数据源整合.xlsx',sheet_name='注册信息')

2.3查看安装信息

print("查看安装信息:")
az.head()

游戏APP用户行为统计分析_第2张图片

2.4查看注册信息

print('查看注册信息:')
zc.head()

游戏APP用户行为统计分析_第3张图片

2.5查看安装信息表中的最大值,最小值等基本信息。

print("安装信息表:")
print(az.info())
print("-"*30)
print(az.describe())
print("-"*30)
print('空值统计:\n',az.isnull().sum())
print("-"*30)
print('重复数据:',az.duplicated().sum())

游戏APP用户行为统计分析_第4张图片
游戏APP用户行为统计分析_第5张图片

2.6查看注册信息表中的最大值,最小值等基本信息。

print("注册信息表:")
print(zc.info())
print("-"*30)
print(zc.describe())
print("-"*30)
print('空值统计:\n',zc.isnull().sum())
print("-"*30)
print('重复数据:',zc.duplicated().sum())

游戏APP用户行为统计分析_第6张图片
游戏APP用户行为统计分析_第7张图片
游戏APP用户行为统计分析_第8张图片
从上述结果可以得出该份数据还算比较干净,没有什么空值数据。

3.数据分析

3.1数据统一

print('安装信息表的安装时间范围:',az['安装时间'].min(),az['安装时间'].max())
print('注册信息表的安装时间范围:',zc['安装时间'].min(),zc['安装时间'].max())

在这里插入图片描述
为了方便分析,选择安装时间在 2020-4-20——2020-04-26 的数据

az = az[az['安装时间']>'2020-04-19 23:59:59']
zc = zc[zc['安装时间']>'2020-04-19 23:59:59']
print('安装信息表的安装时间范围:',az['安装时间'].min(),az['安装时间'].max())
print('注册信息表的安装时间范围:',zc['安装时间'].min(),zc['安装时间'].max())

安装信息表的安装时间范围: 2020-04-20 00:02:15 2020-04-26 15:59:27
注册信息表的安装时间范围: 2020-04-20 00:04:51 2020-04-26 23:44:39

选择注册信息表中’用户唯一ID’存在安装表中的数据

uid = az['用户唯一ID']
zc = zc[zc['用户唯一ID'].isin(uid)]
print('安装信息:',az.shape)
print('注册信息:',zc.shape

在这里插入图片描述

print('注册信息重复ID:',zc['用户唯一ID'].duplicated().sum())
# 去重
zc = zc.drop_duplicates('用户唯一ID')
print('去重后:',zc.shape)

在这里插入图片描述

3.2安装信息分析

3.2.1安装人数、注册人数、激活率

激活率=激活人数/安装人数(这里激活人数以注册人数代替)

print("安装人数:",az.shape[0])
print('注册人数:',zc.shape[0])
print('激活率:%.2f%%'%((zc.shape[0]/az.shape[0])*100)) #以百分比的格式输出激活率

游戏APP用户行为统计分析_第9张图片

3.2.2日安装量、安装渠道、TOP15子渠道、安装地区、是否WiFi安装、安装的手机类型统计TOP15、系统版本
az['安装日期']=az['安装时间'].dt.date
print('日安装用户量:\n',az.groupby('安装日期').用户唯一ID.count())

游戏APP用户行为统计分析_第10张图片
结果可以得出2020-04-25安装用户量最多

print("安装渠道:\n",az['渠道'].value_counts())
print('\n TOP 15子渠道:\n',az['子渠道'].value_counts()[:15])

游戏APP用户行为统计分析_第11张图片
安装渠道以A为主

print('安装地区:\n',az['地区'].value_counts())

游戏APP用户行为统计分析_第12张图片
安装地区A最多,C最少

print('是否WiFi安装:\n',az['WIFI'].value_counts())

游戏APP用户行为统计分析_第13张图片
WIFI和流量安装相差不大,可见现在的流量已经价格很低。

从机型属性中拆分手机类型属性,由于手机品牌名称存在大小写不一的情况(例如OPPO,oppo),因此将手机类型属性字段统一转换为首字母大写的格式:
PS :转换成以下模式再统计也是一样的,但必须先统一格式后再统计:

.lower() 将字符串中全部字符转换为小写
.upper() 将字符串中全部字符转换为大写
.title() 将字符串中每个单词的首字母转换为大写字母

print("用户安装手机类型TOP 15:\n")
az['手机类型'] = az['机型'].str.split("-").str[0]
az['手机类型'] = az['手机类型'].str.title() #.title()将所有手机类型的名称转换为首字母大写的格式
az['手机类型'].value_counts()[:15]

游戏APP用户行为统计分析_第14张图片
samsung首当其冲,其次是Oppo,Huawei

print('系统:',az['系统'].value_counts())
print('\n操作系统版本:\n',az.groupby('操作系统版本').系统.count())

游戏APP用户行为统计分析_第15张图片
可见系统大部分人并没有更新最新系统,只有869人更新系统并下载游戏

3.3注册信息分析

3.3.1每日注册人数、用户类型、注册时段、激活时间、日新增新用户统计
zc['注册日期'] = pd.to_datetime(zc['注册时间']).dt.date
print('日注册用户:\n',zc.groupby('注册日期').用户唯一ID.count())

游戏APP用户行为统计分析_第16张图片
2020-04-26注册人数最多

print("用户类型:\n",zc['用户类型'].value_counts())

游戏APP用户行为统计分析_第17张图片

zc.head()

游戏APP用户行为统计分析_第18张图片

zc['注册时段'] = pd.to_datetime(zc['注册时间']).dt.hour
hzc = zc.groupby(['用户类型','注册时段']).用户唯一ID.count().reset_index(name='total')
sns.lineplot(data=hzc,x='注册时段',y='total',hue='用户类型')
plt.title('各时段的注册用户量',loc='left')
plt.show()

游戏APP用户行为统计分析_第19张图片

print("激活时间:\n")
zc['激活时间'] = pd.to_datetime(zc['注册时间']).dt.day-pd.to_datetime(zc['安装时间']).dt.day
jh = zc['激活时间'].value_counts().reset_index(name='total')
jh['percent'] =(jh['total']/7282).round(3)
print(jh)

游戏APP用户行为统计分析_第20张图片
有4655人选择在当天激活,占安装人数中的63.9%,占整体注册人数中的94.6%,有32.5%的用户没有在7天内激活注册

print('日新增新用户:\n')
nzc = zc[zc['用户类型']=='new']
nzc.groupby('注册日期').用户唯一ID.count()

游戏APP用户行为统计分析_第21张图片
日新增用户基本在每日逐渐增加,呈上升趋势。

你可能感兴趣的:(数据解析之旅:发现信息的奥秘,游戏,python,开发语言)