PUBG Dataset EDA

简介

本项目对绝地求生玩家比赛记录数据集进行分析,主要为数据探索(EDA),基本无建模过程。使用的数据集来自Kaggle,下载地址给出。

环境配置

基于Python3,需要的第三方包在requirements.txt给出。

数据获取

根据上面的链接即可下载数据集,数据量较大,习惯NoteBook的可以直接在Kaggle Kernel上运行,具体操作见之前博客。

数据集下载解压后得到如下四个文件。

  • erangel.png

    • 绝地海岛艾伦格地图(便于Kaggle玩家热点图绘制)
  • mirangel.jpg
    • 热情沙漠米拉玛地图(便于Kaggle玩家热点图绘制)
    • 雨林地图没有数据(em,,,我也是玩过的人)
  • aggregate.zip
    • 玩家比赛统计数据
  • deaths.zip
    • 玩家被击杀数据
    • 本次分析会设计到上述的两类数据。(由于数据量大,原数据集数据量切分为多个部分,对两类数据只分析第一部分即agg_match_stats_0.csv和kill_match_stats_final_0.csv)

对数据集中的数据文件进行初步探索,显示大致文件分布内容如下。

数据探索分析(EDA)

csv文件属性列出如下。

  • agg_match_stats_i.csv文件属性(按照csv文件表头顺序)

    • date:对局时间
    • game_size:游戏规模(队伍数量)
    • match_id:对局id
    • match_mode:对局模式(第一人称还是第三人称)
    • party_size:组队模式(单人赛、双人赛、四人赛)
    • player_assists:助攻次数
    • player_dbno:击倒人数
    • player_dist_ride:载具移动距离
    • player_dist_walk:行走距离
    • player_dmg:伤害数值
    • player_kills:击杀人数
    • player_name:玩家名称
    • player_survive_time:玩家生存时间
    • team_id:队伍id
    • team_placement:队伍排名
  • kill_match_stats_final_i.csv文件属性
    • killed_by:死亡方式
    • killer_name:击杀者名字
    • killer_placement:击杀者排名
    • killer_position_x:击杀者位置x坐标
    • killer_position_y:击杀者位置y坐标
    • map:地图
    • match_id:比赛id
    • time:存活时间
    • victim_name:被击杀者名字
    • victim_placement:被击杀者排名
    • victim_position_x:被击杀者位置x坐标
    • victim_position_y:被击杀者位置y坐标

简单进行数据展示如下。

  • 共有13849287条记录。
  • 共有13426348条记录。

空值

对空值记录查看,其中20249存在空值,均为玩家名称,不影响建模。

df_data_aggregate[df_data_aggregate.isnull().values == True].drop_duplicates()
df_data_deaths[df_data_deaths.isnull().values == True].drop_duplicates()

使用下述代码对空值记录删除。

df_data_aggregate.drop_duplicates(inplace=True)
df_data_deaths.drop_duplicates(inplace=True)

属性构造

补充吃鸡列,并显示击杀数与吃鸡概率的关系。

plt.figure(figsize=(20, 8))
plt.subplot(1, 2, 1)
# 剔除击杀数不合理的玩家
df_data_aggregate.loc[df_data_aggregate['player_kills'] < 50, ['player_kills', 'won']].groupby('player_kills')['won'].mean().plot()
plt.xlabel('kill number')
plt.ylabel("probability of No1")
plt.subplot(1, 2, 2)
df_data_aggregate.loc[df_data_aggregate['player_kills'] < 50, ['player_kills', 'won']].groupby('player_kills')['won'].mean().plot.bar()
plt.xlabel('kill number')
plt.ylabel("probability of No1")

探索分析

查看不同模式吃鸡率。各模式吃鸡率还是比较接近的,这说明这个游戏几种模式设计都是比较合理的。

v = df_data_aggregate.groupby('party_size')['player_kills'].mean()
plt.bar(v.index, v.values)
for x, y in zip(v.index, v.values):plt.text(x, y, "{:.2f}".format(y))
plt.show()

查看载具移动距离与吃鸡率。(嗯,不是在吃鸡,就是在吃鸡的路上。)

df_ride = df_data_aggregate.loc[df_data_aggregate['player_dist_ride']<20000, ['player_dist_ride', 'won']]
labels=["0k-1k", "1k-2k", "2k-3k", "3k-4k","4k-5k", "5k-6k", "6k-7k", "7k-8k", "8k-9k", "9k-10k"]
df_ride['drive'] = pd.cut(df_ride['player_dist_ride'], 10, labels=labels)
df_ride.groupby('drive').won.mean().plot.bar(rot=45, figsize=(12, 8))
plt.xlabel("drive dis")
plt.ylabel("prop of No1")

对玩家死亡数据集的初探。

落地成盒在哪里,统计存活时间段的玩家的死亡地点。

其他如最后毒圈缩在哪里,思路类似。

补充说明

EDA思路参考“Alfred数据室”,代码实现不同。具体数据集地址给出(20G),不可能上传,故Github只有背景图与NoteBook文件。具体代码见我的Github,欢迎star或者fork。

数据分析实战-PUBG数据集EDA相关推荐

  1. Kaggle PUBG吃鸡数据集--数据分析可视化PUBG数据集分析报告

    PUBG数据集分析报告 数据集分为两个部分 数据集1: agg数据: 15 字段 date: 时间 game_size:队伍数量 match_id:比赛 match_mode: 对局模式(第一人称还是 ...

  2. R语言explore包进行探索性数据分析实战(EDA、exploratory data analysis):基于iris数据集

    R语言explore包进行探索性数据分析实战(EDA.exploratory data analysis):基于iris数据集 目录

  3. 《Spark大数据分析实战》——1.4节弹性分布式数据集

    本节书摘来自华章社区<Spark大数据分析实战>一书中的第1章,第1.4节弹性分布式数据集,作者高彦杰 倪亚宇,更多章节内容可以访问云栖社区"华章社区"公众号查看 1. ...

  4. Pandas数据分析实战01--Abalone Data Set(鲍鱼数据集)

    Pandas数据分析实战01 1. 数据描述 2. 数据读取 3. 数据呈现 4. 数据分析 打算从基础开始学习数据分析,给自己一个整理内容和学习消化的时间,所以,这也将成为我的学习笔记. 1. 数据 ...

  5. 《数据分析实战:基于EXCEL和SPSS系列工具的实践》——3.3 耗时耗力的数据整理过程...

    本节书摘来自华章计算机<数据分析实战:基于EXCEL和SPSS系列工具的实践>一书中的第3章,第3.3节,作者 纪贺元,更多章节内容可以访问云栖社区"华章计算机"公众号 ...

  6. 《数据分析实战 基于EXCEL和SPSS系列工具的实践》一3.4 数据量太大了怎么办

    本节书摘来自华章出版社<数据分析实战 基于EXCEL和SPSS系列工具的实践>一书中的第3章,第3.4节,纪贺元 著,更多章节内容可以访问云栖社区"华章计算机"公众号查 ...

  7. Spark数据分析实战:大型活动大规模人群的检测和疏散

    Spark数据分析实战:大型活动大规模人群的检测和疏散 2016-06-29 Hadoop技术博文 近日,风靡西雅图.旧金山的Datapalooza登陆上海(IBM Spark大赛启动 10万美元悬赏 ...

  8. 三十四、R语言数据分析实战

    @Author : By Runsen @Date : 2020/5/14 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘 ...

  9. Python数据分析实战基础 | 初识Pandas

    这是Python数据分析实战基础的第一篇内容,主要是和Pandas来个简单的邂逅.已经熟练掌握Pandas的同学,可以加快手速滑动浏览或者直接略过本文. 01  重要的前言 这段时间和一些做数据分析的 ...

最新文章

  1. 51Talk乘一带一路之东风,破普惠教育巨浪
  2. 构建安全的Xml Web Service系列之SSL篇
  3. 数学不好的人可以学python吗_哪些人适合学金融工程专业 数学不好能学吗
  4. PHP算法根据周数获取开始结束日期
  5. linux 释放进程res_linux内存查看及释放
  6. Linux路由应用-使用策略路由实现访问控制
  7. 【推荐实践】模型化召回在陌陌社交推荐的探索和应用.pdf(附下载链接)
  8. 【数据处理】reshape2包
  9. 2017.0622.《计算机组成原理》-虚拟存储器和主存
  10. C语言入门:函数递归与写法
  11. pycharm+opencv安装总结
  12. 2022·09·漏洞众测平台·企业应急响应中心SRC·大集合·不定时更新
  13. MySQL 有哪些锁?
  14. .net中使用ckeditor4+ckfinder上传图片
  15. 如何在服务器上运行Recorder.js,录音上传到服务器使用jwagener的recorder.js和recorder.swf...
  16. 一键服务端是什么意思_一键消除马赛克和圣光?这类软件能否在未来成为二次元宅男的福音...
  17. 用JS制作表格的添加删除
  18. MATLAB基础教程(7)——求解定积分和不定积分
  19. 在线高德地图Demo(新测)
  20. 学计算机i5九代,九代i5和九代i7区别

热门文章

  1. 基于Xml 的IOC 容器-获得配置路径
  2. 一个客户端对应一个线程
  3. 分布式架构的session问题
  4. OpenResty介绍
  5. Hive的安装-Hive配置
  6. 函数参数-函数参数的使用以及作用
  7. java 文本 从列开始_如何从sql java中检索文本列?
  8. java抛异常 代替返回_请问业务层方法是抛出一个异常好还是返回一个结果更好...
  9. windows环境下设置Redis自启动
  10. 第一章:系统困境之 再努力也不能直接打开的死结