大数据毕设 - 网络游戏数据分析与可视化(python 大数据)

0 前言

🔥 Hi,大家好,这里是丹成学长的毕设系列文章!

🔥 对毕设有任何疑问都可以问学长哦!

这两年开始,各个学校对毕设的要求越来越高,难度也越来越大… 毕业设计耗费时间,耗费精力,甚至有些题目即使是专业的老师或者硕士生也需要很长时间,所以一旦发现问题,一定要提前准备,避免到后面措手不及,草草了事。

为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的新项目是

🚩 大数据 - 网络游戏数据分析可视化

🥇学长这里给一个题目综合评分(每项满分5分)

  • 难度系数:4分
  • 工作量:4分
  • 创新点:3分

🧿 选题指导, 项目分享:

https://gitee.com/yaa-dc/BJH/blob/master/gg/cc/README.md

1 数据集说明

这是一份手游《野蛮时代》的用户数据,共有训练集和测试集两个数据文件。二者之间数据无交集,合计大小 861 M,总记录数 3,116,941,包含字段 109 个。

2 数据处理

数据处理:将两个数据文件合并,只取分析要用的字段。然后把数据写到 mysql。

只取用于分析的字段,因为字段数太多,去掉没用的字段可以极大的节省内存和提高效率

## 合并数据文件 
dir = r"C:\Users\Administrator\Desktop\AgeOfBarbarians"
data_list = []
for path in os.listdir(dir):
    path = os.path.join(dir, path)
    data = pd.read_csv(path)
    data = data[
        ['user_id', 'register_time', 'pvp_battle_count', 'pvp_lanch_count', 'pvp_win_count', 'pve_battle_count',
         'pve_lanch_count', 'pve_win_count', 'avg_online_minutes', 'pay_price', 'pay_count']
    ]
    data_list.append(data)
data = pd.concat(data_list)

## 输出处理 
# 没有重复值
# print(data[data.duplicated()])

# 没有缺失值
# print(data.isnull().sum())

## 数据保存 
# 保存清洗后的数据 mysql
engine = create_engine('mysql://root:root@172.16.122.25:3306/test?charset=utf8')
data.to_sql('age_of_barbarians', con=engine, index=False, if_exists='append')

image-20201230152058798

导进数据库后,在修改下字段类型以解决精度问题。

alter table age_of_barbarians modify register_time timestamp(0);
alter table age_of_barbarians modify avg_online_minutes float(10, 2);
alter table age_of_barbarians modify pay_price float(10, 2);

image-20201230153430246

3 数据分析可视化

3.1 新增用户

总的用户数为 3,116,941。

总的记录数与用户数据一致,说明 use_id 可以作为唯一 ID。所以后续对用户的统计,可以不用加 distinct

image-20201230154232372

其中 PU 为 60,988 人, 占比 1.96 %

PU ( Paying Users):付费用户总量

image-20201230162906441

DNU 的情况如下图,可以看到有两个注册高峰,应该是这款游戏做了什么活动引流产生。

DNU(Daily New Users): 每日游戏中的新登入用户数量,即每日新用户数。

image-20201230170002894

每小时注册的用户情况如下,可以看到新用户的注册高峰是在晚间的 21 点。

image-20201230170339951

3.2 用户活跃度

从平均在线时间来看,付费用户的平均在线时间高达 2 个小时,远大于整体的平均在线时间。

image-20201230172026634

3.3 用户消费情况

APA(Active Payment Account):活跃付费用户数。

ARPU(Average Revenue Per User) :平均每用户收入。

ARPPU (Average Revenue Per Paying User): 平均每付费用户收入。

PUR(Pay User Rate):付费比率,可通过 APA/AU 计算得出。

-- APA(Active Payment Account):活跃付费用户数。
select count(1) as APA from age_of_barbarians where pay_price > 0 and avg_online_minutes > 0; -- 60987

-- ARPU(Average Revenue Per User) :平均每用户收入。
select sum(pay_price)/sum(case when avg_online_minutes > 0 then 1 else 0 end) from age_of_barbarians;  -- 0.582407

-- ARPPU (Average Revenue Per Paying User): 平均每付费用户收入。
select sum(pay_price)/sum(case when avg_online_minutes > 0 and pay_price > 0 then 1 else 0 end)  from age_of_barbarians; -- 29.190265

-- PUR(Pay User Rate):付费比率,可通过 APA/AU 计算得出。
select sum(case when avg_online_minutes > 0 and pay_price > 0 then 1 else 0 end) / sum(case when avg_online_minutes > 0 then 1 else 0 end)
from age_of_barbarians;  -- 0.02

-- 付费用户人数,付费总额,付费总次数,平均每人付费,平均每人付费次数,平均每次付费
select  count(1) as pu,  -- 60988
        sum(pay_price) as sum_pay_price,  -- 1780226.7
        avg(pay_price) as avg_pay_price,  -- 29.189786
        sum(pay_count) as sum_pay_count,  -- 193030
        avg(pay_count) as avg_pay_count,  -- 3.165
        sum(pay_price) / sum(pay_count) as each_pay_price -- 9.222539
from age_of_barbarians
where pay_price > 0;

从上方的统计结果可以知道,这 6 万多的付费用户,一共消费了 178 万元,平均每人消费 29 元。

平均每用户收入 0.58 元,平均每付费用户收入 29.19 元,付费比率为 2% 。

这个付费比率应该是比较低的,可以通过一些首冲活动来提高新用户的付费意愿。

image-20201230174654309

3.4 用户游戏情况

从胜率和场次来看,氪金确实可以让你变强,付费用户的平均胜率为 71.13 %,远大于非付费用户的 38.03 %,当然也是因为付费用户的平均游戏场次要远大于一般用户,毕竟越肝越强。

从游戏类型来看,PVE 的平均胜率达到 90.1 %,说明难度还是比较低的,游戏体验还是很好的,适合符合入门级难度设定。

image-20201231100513252

image-20201231103330520

4 最后

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、本课题的目的和意义 目前我国的信息数字化工作也进入一个全新发展时期,特别是高校的信息化建设已进入了全面的发展阶段,诸多高校充分地认识到,信息化建设己经成为了高校提高自身管理水平、提升综合竞争实力的重要手段。学校作为一个教育单位,成绩管理是学校日常管理不可缺少的部分,这就需要有一个能够提供这类服务的工具,因此课程成绩管理系统的开发就成为了必然。现在我国的大部分学校的成绩管理水平还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。同时,因特网的出现和发展,使信息交流进入到一个崭新的历史时期,它打破了时空的障碍,使生活在不同国度的人们可共享网络信息资源,进而极大地促进全球经济的发展。 随着学生人数的增加,对于学生的信息管理也越来越复杂,要求也越来越高,因此需要一个全面、详细的课程成绩管理系统,以便完成对学生成绩信息的管理。 课程成绩管理系统,可以用集中的数据库将与人力资源管理相关的信息全面、有机地联系起来,有效地减少了信息更新和查找中的重复劳动,保证了信息的相容性,从而大大地提高了工作效率,还能使原来不可能提供的分析报告成了可能。在采用和实施课程成绩管理系统之后,就会将依赖于人的过程改为依赖于计算机系统的过程。学校管理人员只要获取了相应的权限,就可以随时进入系统,直接查阅相应的信息。 采用和实施学生课程成绩管理系统不仅仅是为了提高工作效率。同时在使用课程成绩管理系统后,学校相关领导可以较为全面、准确的了解到同学们的综合信息,然后方便更具各种信息对学校的管理做出各种决策。 二、课题的国内外开发动态 人类已进入21世纪,科学技术突飞猛进,经济知识和信息产业初见端倪,特别是信息技术和网络技术的迅速发展和广泛应用,对社会的政治、经济、军事、文化等领域产生越来越深刻的影响,也正在改变人们的工作、生活学习、交流方式。信息的获取、处理、交流和应用能力,已经成为人们最重要的能力之一。在不久的将来知识经济将占世界经济发展的主导地位,国家综合国力和国际竞争能力越来越取决于教育发展,科学技术和知识创新的水平,教育在经济和社会的发展过程中将呈现出越来越突出的重要作用。课程成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以课程成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段。 三、课题的基本内容 课程成绩管理系统作为一款教学管理工作的系统,它将复杂的工作便捷化、高效化。本系统按功能分为以下几个模块: (1)基础数据的维护模块:实现最基本的数据信息维护,其中包括对系部信息、班级信息、课程信息、教师信息、学生信息的维护。 (2)班级课程设置模块:实现对班级所要上的课程进行设置功能。 (3)班级单科成绩录入模块:实现按班级录入每学期、每一课程的学生各类成绩的功能。 (4)单个学生全部成绩录入模块:实现可能由于某种原因,需要按单个学生全部各类成绩输入的功能。 (5)单科课程全部学生成绩录入模块:实现按课程录入选修该课程全部学生各类成绩功能。 (6)个人全部成绩查询,个人单科成绩查询模块:实现按个人信息查询个人的全部成绩,按个人信息和课程信息查看个人的单科成绩的功能。 (7)班级单科成绩查询,班级全部成绩查询模块:实现按班级查询单科成绩和所有已考成绩的功能。 (8)按课程查询成绩模块:实现按课程查询选修该门课程所有学生的成绩功能。 (9)成绩修改模块:实现按学号和课程号修改学生的成绩的功能。 (10)重修处理模块:实现对需要重修或者清考的学生名单的查询功能。 (11)打印班级成绩表模块:实现按班级打印每学期所有成绩表的功能。 (12)打印个人成绩通知单模块:实现打印每个人每学期所有成绩的通知单的功能。 (13)打印班级花名册模块:实现打印班级花名册的功能。 (14)用户管理模块:实现对系统用户的经行添加、修改、删除的功能。 (15)修改个人登录信息模块:实现修改个人的登录密码的功能。 (16)查询个人信息模块:实现教师或者查看自身信息的功能。 (17)查询个人课程模块:实现教师或者学生查看自身所教或者所学课程的功能。 四、拟解决的主要问题 本系统开发的技术难点主要有两个方面:一是业务逻辑的理解;二是数据库逻辑结构的设计。只要在准确理解一个系统的业务逻辑之后才可能开发出适应其应用的应用系统来,并且在系统之间模块的科学划分与结构组织都是在正确理解实际应用中的业务逻辑需求的前提下完成的。 此外、利用SQL 2000建立好关系数据库和建好客户端和服务器之间的连接又是另一个难点。建立良好的数据库要从科学性、安全性、规范性、结构性等各个方面进行考虑。客户端和服务器之间的连接要配置好数据库服务器等。 五、课题设计的实现方案 (

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值