某策略游戏测试阶段运营情况分析报告-基于python
背景
数据集来源于tap4fun公司在DC竞赛网站发布的一组《野蛮时代》游戏测试数据,数据为20180126-20180306期间用户在七日内产生的各项数据
根据数据集内容,本次报告主要从用户增长、行为情况,游戏收入水平等方面综合分析游戏在测试阶段的运营表现
了解数据
字段含义
除prediction_pay_price外,其余字段时间均为从用户注册一直到满七天的数据累计内容,即时间有效性为七天
加载必要的库
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
plt.rc('font', family='SimHei', size=18)# 显示中文标签
plt.style.use ('ggplot')#设定绘图风格
读取数据
#读取数据并查看数据列内容
data_path = r'tap_fun_train.csv'
data = pd.read_csv(data_path)
data.columns.to_list()
查看数据类型和数据结构
#查看数据集大小
data.shape
(2288007, 109)
#选取需要的数据列
item = ['user_id','register_time','bd_stronghold_level','wood_reduce_value','stone_reduce_value','ivory_reduce_value','meat_reduce_value','magic_reduce_value','general_acceleration_reduce_value','building_acceleration_reduce_value','reaserch_acceleration_reduce_value','training_acceleration_reduce_value','treatment_acceleration_reduce_value','pvp_battle_count','pvp_win_count','pve_battle_count','pve_win_count','avg_online_minutes','pay_price','pay_count','prediction_pay_price','infantry_add_value','infantry_reduce_value','wound_infantry_add_value','wound_infantry_reduce_value']
#选取分析的数据集
df = data.loc[:,item]
df.info()
user_id和register_time应分别为字符型和日期型数据,需转化数据类型
#数据格式类型转化
df['user_id'] = df['user_id'].astype('str')
df['register_time'] = pd.to_datetime(df['register_time']).dt.date
统计缺失值
#查看空值情况
df.isnull().sum()
数据集比较完整,无缺失值现象
删除重复数据
因为数据为七日玩家的基本游戏数据,这边根据玩家user_id进行去重
#删除重复数据集
df.drop_duplicates(subset='user_id',inplace=True)
游戏总体情况
注册人数变化
#游戏总体情况分析
#注册用户数情况,时间1月26到3月6号之间
#日新增注册用户数量变化
fig= plt.figure(figsize=(16,6))
fig.add_subplot(1,2,1)
plt.plot(df.groupby('register_time').user_id.count())
plt.title('日新增注册用户数量变化')
#累计新增注册用户数量变化
fig.add_subplot(1,2,2)
plt.plot((df.groupby('register_time').user_id.count()).cumsum())
plt.title('日新增注册用户数量变化')
数据显示,活动期间玩家注册人数一直保持良好增长,截止3月6号,累计注册用户数大228W+,预测后续还将保持良好增长
活跃用户数变化
#活跃用户变化
#活跃用户定义为在线时长大于平均在线时长的用户
avg_online = df['avg_online_minutes'].mean()
plt.plot(df.loc[df['avg_online_minutes']>=avg_online,:].groupby('register_time').user_id.count())
plt.title('日新增活跃用户数量变化')
全部用户中活跃用户占比13.7%,付费用户占比1.8%,玩家