Python 玩转百万级游戏数据(附练手源数据)_python如何输出玩家功力值案例-程序员宅基地

今天分享的一个实战案例是关于游戏行业的,数据量级比较大,数据包含近229万条记录和 109个字段 ,以下取较重要的字段进行说明。

相关数据已经给大家打包好,感兴趣的同学后台回复 “游戏数据” ,即可获取完整数据集,做更多有趣探索分析。

字段说明

  • user_id :用户编码,用户唯一标识
  • 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_valu :建筑加速消耗数量
  • reaserch_acceleration_reduce_value :科研加速消耗数量
  • training_acceleration_reduce_value :训练加速消耗数量
  • treatment_acceleration_reduce_value :治疗加速消耗数量
  • pvp_battle_count :玩家对玩家次数
  • pve_battle_count :玩家对机器次数
  • avg_online_minutes :日均在线时间
  • pay_price  : 消费金额
  • pay_count :消费次数

分析思路

  • 用户注册时间分布情况?
  • 用户的付费情况(付费率,ARPU,ARPPU)?
  • 各等级用户的付费情况?
  • 用户的消费习惯?
  • 可视化数据

分析过程

1. 导入数据

import numpy as npimport pandas as pdfrom pandas import read_csvfrom sklearn.cluster import KMeansimport matplotlib.pyplotas pltimport pylab as plfrom matplotlib.font_managerimport FontManager, FontPropertiespd.set_option('display.max_columns',None)#为了数据安全,copy一份数据df=df0#检查是否有空值print(df.isnull().any().any())#观察数据构成print(df.head())

2. 清洗数据

#以user_id为维度,删除重复数据,并查看用户总数df=df.drop_duplicates(subset='user_id')print('用户总数:',len(df['user_id']))→用户总数:2288007

3. 计算用户注册时间分布

#首先将注册时间精确到天register_date=[]for i in df['register_time']:    date=i[5:10]    register_date.append(date)df['register_time']=register_date#计算每天的注册人数df_register=df.groupby('register_time').size()df_register.columns=['日期','注册人数']print(df_register)(可视化)plt.plot(df_register)plt.grid(True)pl.xticks(rotation=90)font=FontProperties(fname='/System/Libra
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43881394/article/details/106925999

智能推荐

php字符串按数组替换,php如何替换数组里的字符串-程序员宅基地

文章浏览阅读481次。php如何替换数组里的字符串2021-03-05 00:20:25php替换数组里的字符串的方法:可以利用str_replace函数来进行替换,如【str_replace("red","pink",$arr,$i)】。如果搜索的字符串是一个数组,那么它将对数组中的每个元素进行查找和替换。本文操作环境:windows10系统、php 7.3、thinkpad t480电脑。如果我们需要替换数组中的字..._php 字符串替换数组里的

ubuntu18.04安装opencv_ubuntu安装opencv4.8-程序员宅基地

文章浏览阅读546次,点赞2次,收藏6次。ubuntu 18.04 安装OpenCV 3.4.8版本1、安装包下载先到官网下载所需要的opencv包点击链接,这里我下载的是3.4.82、安装依赖包sudo apt-get install build-essentialsudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-devsudo apt-get install python-dev pyt_ubuntu安装opencv4.8

使用openlayers加载本地离线地图瓦片的一个最简单地例子_openlayer加载离线地图-程序员宅基地

文章浏览阅读1.8k次。上一篇文章写了 leaflet,本篇说一下openlayers。第一步,下载:https://github.com/openlayers/openlayers/releases/download/v6.2.1/v6.2.1-dist.zip解压后,我们只需要其中两个文件ol.css,ol.js第二步,下载瓦片,参考上篇文章,https://blog.csdn.net/netying..._openlayer加载离线地图

最全的HTTP响应状态码列表:除了404,HTTP状态码还有啥?-程序员宅基地

文章浏览阅读903次。HTTP是一个应用层协议,虽然在2015年已推出HTTP/2版本,并被主要的web浏览器和web服务器支持。它的主要特点可概括如下:支持客户/服务器模式。简单快速:..._除了404notfound还有什么

【算法训练营】周测1-程序员宅基地

文章浏览阅读1.7k次,点赞50次,收藏48次。驭风计划课程链接如果需要答案代码可以私聊博主有任何疑问或者问题,也欢迎私信博主,大家可以相互讨论交流哟~~

《从缺陷中学习C/C++》——6.3 数组传参时的sizeof-程序员宅基地

文章浏览阅读74次。本节书摘来自异步社区出版社《从缺陷中学习C/C++》一书中的第6章,第6.3节,作者: 刘新浙 , 刘玲 , 王超 , 李敬娜 , ,更多章节内容可以访问云栖社区“异步社区”公众号查看。6.3 数组传参时的sizeof从缺陷中学习C/C++代码示例void copy(int a[], int b[]) {  memcpy(b, a, sizeof..._void copy(int a[], int (&b)[]) {   memcpy(a, b, sizeof(b)); }

随便推点

批处理删除edge浏览器缓存文件_批处理 设置edge-程序员宅基地

文章浏览阅读1.9k次。@echo offrem 桌面创建删除日志set logpath=%USERPROFILE%\DESKTOP\clearEdgLog.txtrem 设置edge浏览器缓存文件路径set dirpath=%LOCALAPPDATA%\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AC\#!001\MicrosoftEdge\Cache\echo.>%logpath%rem 删除不是系统,只读和隐藏的文件for /f "tokens=*" %._批处理 设置edge

Postgresql时间处理_postgresql 获取某天的23:59:59-程序员宅基地

文章浏览阅读2k次。目录时间/日期操作符日期/时间函数EXTRACT函数综合示例时间/日期操作符操作符 例子 结果 + date '2011-09-28' + integer '7' date '2011-10-05' + date '2011-09-18' + interval '1 hour' timestamp '2011-09-18 0..._postgresql 获取某天的23:59:59

【Web安全笔记】之【7.0 防御技术】_前端 实现 att&ck matrix for enterprise-程序员宅基地

文章浏览阅读1.9k次。文章目录7.0 防御技术7.1 团队建设7.1.1 人员分工1. 部门负责人2. 合规管理员3. 安全技术负责人4. 渗透/代码审计人员5. 安全设备运维人员6. 安全开发7.1.2 参考链接7.2 红蓝对抗7.2.1 概念7.2.3 网络攻防演习7.2.4 侧重7.2.5 目标7.2.6 前期准备7.2.7 行动流程7.2.8 注意事项7.2.9 参考链接7.3 安全开发7.3.1 简介7.3.2 步骤1) 阶段1:培训2) 阶段2:确定安全需求3) 阶段3:设计4) 阶段4:实现5) 阶段5:验证6) _前端 实现 att&ck matrix for enterprise

client-go入门之3:解析 yaml 文件并创建 k8s 资源对象_client.go解析yaml部署-程序员宅基地

文章浏览阅读5.4k次,点赞4次,收藏8次。我们使用 k8s 提供的命令行工具 kubeclt 可以很方便地使用kubectl apply -f xx.yaml从 yaml 文件创建 k8s 的资源对象,但使用 client-go 的时候,通常是使用 clientset 的 list 或 get 接口先获取集群中已有的对象,再通过修改对象的属性之后调用 update 接口去操作集群中的资源对象,若要通过 client-go 使用 yaml 文件创建新的资源对象,则不能使用 clientset 而要使用 dynamicClient,这个用起来就没有 c_client.go解析yaml部署

微信小程序接收后端数据并显示轮播图_微信小程序轮播图后端-程序员宅基地

文章浏览阅读1.4k次。轮播图、是否自动轮播autoplay、修改轮播速度slider部分代码:index.wxml<view class="container" style=""> <!--轮播图--> <swiper class="home-swiper" indicator-dots="true" autoplay="{{autoplay}}" interval="{{..._微信小程序轮播图后端

图书推荐|西门子S7-1200 PLC编程与应用实例-程序员宅基地

文章浏览阅读1.4k次,点赞26次,收藏16次。编撰而成,作者是行业专家,在自动控制领域有独特建树,从事过十余个行业的相关项目,因此,你从本书不仅可以学习PLC1200的应用,其中的工作和实践经验尤其难得。参与过智能制造、轨道交通、市政燃气、石油石化、智慧矿山、光伏发电、火力发电、钢铁冶金、医药制造等行业的项目,项目经验丰富。,也可供有一定基础的工程师借鉴和参考,还可作为高等院校自动化和机电专业的教材。用,基础配合实例,循序渐进,通俗易懂,内容详实且丰富,书中还在多个地方使用了。《西门子S7-1200 PLC编程与应用实例》内容由浅入深,由基础到应用,