前段时间(当《争霸艾泽拉斯》还很流行的时候)我创建了一个小型服务,用于收集拍卖行价格的数据,以获取最流行的突袭物资。代码在 Heroku 上运行了几个月,我完全忘记了它仍然是一件事。今天我们就来看看它收集了什么!

分析 jupyter 笔记本在此处可用。

什么是魔兽世界?

根据维基百科:

魔兽世界 (WoW) 是暴雪娱乐于 2004 年发布的大型多人在线角色扮演游戏 (MMORPG)。这是魔兽奇幻世界中第四款发布的游戏。 《魔兽世界》发生在艾泽拉斯的魔兽世界中,大约在暴雪之前发布的《魔兽争霸III:冰封王座》结束事件发生四年后。该游戏于 2001 年发布,并于 2004 年 11 月 23 日为魔兽系列 10 周年发布。自发布以来,魔兽世界已经为其制作了八个主要扩展包:燃烧的远征、巫妖王之怒、大灾变、潘达利亚之谜、德拉诺之王、军团、争霸艾泽拉斯和暗影国度。

为什么数据值得研究?

魔兽世界游戏在科学工作方面已经是一座金矿(见google 学者)。从社会研究到金融,暴雪创造的世界提供了许多关于玩家如何对待他们创造的角色的信息,模拟他们在现实生活中的行为方式。

那些奇怪的词是什么意思?

魔兽世界与任何其他游戏一样,对世界上存在的物品都有特定的术语。以下是研究此笔记本时将使用的特定项目和单词的摘要。

学期

描述

PvE

玩家对环境,专注于对抗计算机生成的敌人的游戏

玩家对战

玩家对玩家,专注于与其他玩家战斗的游戏玩法

聚会

一组 2-5 名玩家,为参与 PvE 或 PvP 场景而创建

突袭组

一组 6-40 名玩家,每组 5 人,专为参与 PvE 或 PvP 而创建

袭击

一个实例化的地牢,有几个老板,这对团队来说是一个挑战

烧瓶

一小时角色统计增益持续到死亡

药水

对统计数据的短暂提升,增加伤害,生存能力等

食物

死亡时消失的长角色统计增益

盛宴

提供食物爱好者的桌子,但可以由多人一起使用

你有多少钱。分为金、银、铜:100铜u003d1银、100银u003d1金

拍卖行(AH)

人们在游戏中出售商品的地方

数据分析

数据清洗

信息以.csv文件的形式呈现。我不得不对其进行一些清洁:

  • 删除item_vendor_buyitem_vendor_sell列,

  • 删除item_market_value,因为它是 TSM 相关信息,

  • 过滤掉指定时间有0次拍卖的物品,

  • 移除某人以惊人的价格出售的异常药水(无论如何他们永远不会出售),

  • 将值更新为金而不是铜,以提高可读性,

  • 添加“自新突袭以来的天数”列以查看它是否会影响价格。

<class 'pandas.core.frame.DataFrame'>
Int64Index: 44702 entries, 305 to 45163
Data columns (total 7 columns):
 #   Column               Non-Null Count  Dtype         
---  ------               --------------  -----         
 0   item_name            44702 non-null  category      
 1   item_subclass        44702 non-null  category      
 2   item_min_buyout      44702 non-null  float64       
 3   item_quantity        44702 non-null  int64         
 4   item_num_auctions    44702 non-null  int64         
 5   created_at           44702 non-null  datetime64[ns]
 6   days_after_new_raid  44702 non-null  int64         
dtypes: category(2), datetime64[ns](1), float64(1), int64(3)
memory usage: 2.1 MB

进入全屏模式 退出全屏模式

基本信息

我们的数据集有 44702 个非空条目。项目的名称及其子类是分类值。item_min_buyout是人们通常购买物品的价值(使用买断选项,而不是实际进行拍卖)。item_quantity是物品的数量,而item_num_auctions是这些物品所属的拍卖数量(一个拍卖可以有多个物品)。

我们可以预览下面的统计数字。由于我们在比较各个子类的物品,最小值和最大值会有很大的不同,我们会在深入分析时处理这个问题,但我们已经可以看到消耗品在拍卖行中的位置选定的时间段。


        item_min_buyout item_quantity   item_num_auctions  days_after_new_raid
count   44702.000000    44702.000000    44702.000000       44702.000000
mean    251.548674  7728.937989 170.392846     102.935998
std 453.994244  19342.280116    249.134527     63.154147
min 0.010000    1.000000    1.000000       0.000000
25% 29.990000   1107.000000 33.000000      46.000000
50% 90.299300   2807.000000 74.000000      133.000000
75% 299.000000  7385.750000 220.000000     159.000000
max 4999.180000 607024.000000   4337.000000    194.000000

进入全屏模式 退出全屏模式

数据集从2019.11.17 00:03开始,最后一个条目是2020.03.29 15:27,有 4374 个唯一条目。在几个月的过程中,数据大约每小时收集一次,除非服务器出现故障(2 次)或 TSM API 不可用。

count                   44702
unique                   4373
top       2019-12-19 15:44:36
freq                       19
first     2019-11-17 00:03:12
last      2020-03-29 15:27:13
Name: created_at, dtype: object

进入全屏模式 退出全屏模式

接下来我们可以预览项目和子类。共有 19 种独特的物品,分为 3 个子类:药水、烧瓶和食物和饮料。在收集数据的过程中,我专注于获取对当时的袭击有用的物品。您可以在下面预览描述哪个项目进入哪个子类的表格:

item_subclass   item_name
Potion          Superior Battle Potion of Agility
Potion          Superior Battle Potion of Intellect
Potion          Superior Battle Potion of Stamina
Potion          Superior Battle Potion of Strength
Potion          Potion of Focused Resolve
Potion          Potion of Empowered Proximity
Potion          Potion of Unbridled Fury
Potion          Potion of Wild Mending
Potion          Abyssal Healing Potion
Flask           Greater Flask of the Currents
Flask           Greater Flask of Endless Fathoms
Flask           Greater Flask of the Vast Horizon
Flask           Greater Flask of the Undertow
Food & Drink    Mech-Dowel's "Big Mech"
Food & Drink    Abyssal-Fried Rissole
Food & Drink    Fragrant Kakavia
Food & Drink    Baked Port Tato
Food & Drink    Bil'Tong
Food & Drink    Famine Evaluator And Snack Table

进入全屏模式 退出全屏模式

随着相关性的发展,我们可以看到一些有趣的联系:

  • item_min_buyout并不真正取决于物品的数量或拍卖次数,

  • item_min_buyout与上次raid 出来的天数呈负相关,意味着离发布时间越长,价格就会下降,

  • item_quantityitem_num_auction具有相当高的正相关性。这并没有给我们任何有用的信息,因为数据会自我复制(您拥有的拍卖越多,通常会出现越多的物品)。

  • 有趣的是,days_after_new_raiditem_num_auctions呈正相关。这可能有几个原因:要么更多的人可以制作收据,要么随着时间的推移未售出的物品数量增加,或者购买这些物品的人普遍减少。 . 或同时。

[相关矩阵](https://res.cloudinary.com/practicaldev/image/fetch/s--TTv8Tcg3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to- uploads.s3.amazonaws.com/uploads/articles/7efaauwwt47kduswemfj.png)

我们将取出Famine Evaluator And Snack Table与其他食品分开分析。这是因为一场盛宴的价格远远高于普通食品,所以情节看起来很糟糕。我们还将按天和子类别对项目进行分组,取平均值,以查看所选子类别的价格通常会发生什么情况。

正如我们在下面的两个图中所看到的,价格随时间而变化。有趣的是,随着尼奥罗萨突袭的发布,我们可以看到一个巨大的增长,然后是一个巨大的下降,然后又是一个巨大的增长。这是由于玩家群在新的突袭版本中的行为方式。玩家在突袭前回到游戏,只是为了厌倦内容(再次减少),以至于铁杆玩家购买物品以通过新的突袭前进。价格通常会在前几周上涨,然后缓慢下降到下一个突袭版本。

[所有项目的时间序列](https://res.cloudinary.com/practicaldev/image/fetch/s--hrhem_lP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev- to-uploads.s3.amazonaws.com/uploads/articles/vgbbiu21w5zd5chg48q.png)

[小吃桌时间序列](https://res.cloudinary.com/practicaldev/image/fetch/s--siZNNXdt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev- to-uploads.s3.amazonaws.com/uploads/articles/ty6c6xm7ygevpteonxbf.png)

要检查的一件有趣的事情是数字在工作日是如何变化的。通常公会会在一周中的特定日子进行突袭。受欢迎的日子是周三、周四和周日。正如我们所看到的,价格在接近重置(周三发生)时下跌,在周三和周四上涨,然后再次缓慢下跌。这是预期的行为。唯一有趣的是,通常在星期四购买宴会。

还检查了每小时价格,但没有提供任何有趣的结果。

[所有项目的工作日数据](https://res.cloudinary.com/practicaldev/image/fetch/s--NwEDQwmw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev -to-uploads.s3.amazonaws.com/uploads/articles/dos4jwk7hrhskr6v2v4u.png)

[点心表的工作日数据](https://res.cloudinary.com/practicaldev/image/fetch/s--RQo0iKy2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev -to-uploads.s3.amazonaws.com/uploads/articles/h7ua3zlrigvhy7ned2eb.png)

Logo

华为、百度、京东云现已入驻,来创建你的专属开发者社区吧!

更多推荐