Python数据分析-Steam 收入排名前 1500 的游戏
一、研究背景
随着全球数字化进程的加速,电子游戏产业已成为全球娱乐产业的重要组成部分,吸引了越来越多的资本与消费者关注。特别是基于互联网的游戏平台,如Steam,已成为全球范围内发行和销售游戏的重要渠道。Steam平台不仅为玩家提供了丰富的游戏内容,还为开发商和发行商提供了一个展示作品、与玩家互动、获得市场反馈的开放平台。截至2024年,Steam已经成为全球最具影响力的游戏平台之一,拥有数千万活跃用户和海量游戏作品。通过该平台,众多独立开发者以及大型游戏公司都能在全球范围内获得广泛的市场曝光。
近年来,随着游戏市场的竞争日益激烈,开发商和发行商不仅需要确保游戏的质量,还必须掌握市场的动态变化,如玩家的偏好、消费习惯、游戏定价策略、市场营销方式等。这些因素在很大程度上决定了一款游戏的成功与否。与此同时,玩家的参与度、游戏的口碑和评论得分等指标也日益成为衡量游戏市场表现的重要参数。
本研究基于2024年1月1日至9月9日期间,Steam平台上发布的前1500款游戏数据,旨在通过对这些游戏的销售数据、收入、玩家参与度、评论评分、开发商和发行商背景等多维度数据的深入分析,揭示影响游戏市场表现的关键因素。通过分析这些游戏的市场表现及其背后的市场机制,我们希望为未来的游戏开发与发行提供数据支持和策略参考。
二、研究意义
本研究的意义体现在以下几个方面:
-
市场洞察
随着游戏产业的飞速发展,市场上的游戏种类和数量呈现爆发式增长。通过对Steam平台前1500款收入最高游戏的深入分析,本研究能够揭示哪些类型的游戏在市场上更受欢迎,以及影响其销量和收入的关键因素。这对于游戏开发商在未来制定开发方向、优化游戏设计有着重要的指导意义。 -
定价策略优化
本研究通过分析游戏定价、销售量与收入之间的关系,帮助开发商和发行商更好地理解不同定价策略的效果。例如,价格是否对销量有显著影响,或者高价是否必然意味着高质量或高收益的游戏。这将为未来的定价决策提供实证支持,帮助开发商在市场中获得更好的经济回报。 -
玩家行为与市场反馈
玩家参与度、平均游戏时长、评论分数等指标是衡量游戏受欢迎程度和质量的重要标准。本研究通过分析这些玩家行为数据,可以帮助开发商理解哪些因素最能影响玩家的忠诚度和留存率。通过研究这些行为模式,开发商可以更有针对性地改进游戏内容和优化用户体验。 -
开发商和发行商分析
不同规模的开发商和发行商在游戏市场中的表现差异显著。本研究可以揭示大公司与独立开发者之间的竞争优势和劣势,并帮助小型开发商找到在竞争激烈的市场中脱颖而出的策略。同时,研究还可以揭示发行商在游戏营销和推广中的重要作用,从而为未来的发行合作提供参考。 -
趋势预测与市场策略
通过对市场动态数据的分析,本研究还可以为游戏市场未来的发展趋势提供参考。通过研究销售排名和价格波动等数据,预测未来游戏市场可能的发展方向。这为游戏开发者和发行商在市场定位、资源分配和营销策略上提供了前瞻性的建议。
三、实证分析
此数据集包含 2024 年 1 月 1 日至 2024 年 9 月 9 日期间在 Steam 上发布的前 1500 款游戏的全面信息。进行了细微的调整,例如调整游戏发布日期以保持一致性。
主要特点: 游戏详情: 包括标题、发布日期和开发商/发行商信息。
Sales and Revenue:跟踪售出的副本数、产生的收入和定价详细信息。
玩家参与度:提供平均游戏时间、峰值玩家数量和其他用户参与度指标。
评论和分数:特色评论分数和评级。
动态市场数据:提供对游戏性能随时间变化趋势的见解,例如销售排名和价格波动。
导入数据包
代码和数据
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
读取数据
data =pd.read_csv(r"Steam_2024_bestRevenue_1500.csv")
data

数据缺失值查看

发现存在缺失值,需进行处理
data.duplicated().sum()
查看数据具体情况
data.info()

查看NAME
data.name.value_counts()
查看一下每个特征的MAX
data.copiesSold.max()data[data['copiesSold']==30739148]
价格最高的游戏
data.price.max()data[data['price']==99.99]

税收最高的游戏
data.revenue.max()data[data['revenue']==837793356.0]

价格与税收的散点图
plt.scatter(data.price,data.revenue,color='red')
plt.xlabel('price')
plt.ylabel('revenue')

plt.figure(figsize=(6,4))
sns.histplot(data['price'],bins=20,kde=True,color='green',edgecolor="black")
plt.title("Distribution of Game Prices")
plt.xlabel("Price ($)")
plt.ylabel('Number of Games')
plt.show()

plt.figure(figsize=(6,4))
plt.pie(data.publisherClass.value_counts(), labels=data.publisherClass.value_counts().index, autopct='%1.1f%%', colors=['#ff9999', '#ff66b3', '#99ff99', '#ffcc99'])
plt.title('Distribution of Games by Publisher Class')
plt.show()

数据描述性统计

该数据包含了游戏的发布日期、销量、价格、收入、平均游戏时长、评论分数和 steam 编号等信息,统计了 1500 个数据,发布日期在 2024 年 1 月 1 日到 2024 年 9 月 6 日之间,销量最少 593 最多 30739150,价格从 0 到 99.99,收入最少 20674 最多 837793400,平均游戏时长最少 0 最多 296.332852,评论分数在 0 到 100 之间,同时给出了各项数据的均值、25%、50%、75% 分位数以及标准差等统计信息。
相关系数热力图
sns.heatmap(data_corr)
plt.title('Correlation Heatmap')
plt.show()

plt.figure(figsize=(6, 4))
sns.boxplot(data=data, x='publisherClass', y='reviewScore', palette='Set2')
plt.title('Review Scores by Publisher Class')
plt.xlabel('Publisher Class')
plt.ylabel('Review Score')
plt.xticks(rotation=45)
plt.grid(True)
plt.show()

sns.scatterplot(data=data, x='reviewScore', y='avgPlaytime', hue='publisherClass')

sns.boxplot(x='publisherClass', y='price', data=data)
data.groupby('releaseDate')['revenue'].sum().plot(kind='line', title='Revenue Over Time')

四、结论
通过对2024年Steam平台前1500款游戏的多维度数据分析,本研究得出了以下结论:
-
游戏类型和市场表现密切相关
不同类型的游戏在市场上的表现差异明显。动作类、角色扮演类(RPG)和多人在线竞技类游戏(MOBA)在市场中表现突出,吸引了大量玩家和收入。而休闲类、独立游戏等虽然销量相对较少,但凭借较低的开发成本和针对性强的玩家群体,也在特定细分市场中占据一席之地。 -
玩家参与度和评论评分对游戏销售影响显著
玩家参与度高的游戏通常在市场上表现较好。游戏的平均时长、峰值玩家数、游戏评论评分等指标能够直接反映玩家对游戏的喜爱程度和满意度。特别是评论分数较高的游戏,往往更容易获得长期的市场认可和稳定的玩家基础。 -
定价策略影响销售收入
定价策略对于游戏的市场表现有着显著影响。本研究发现,高价格的游戏通常意味着较高的开发成本和质量保障,但也可能导致潜在玩家群体的减少。而较低的定价虽然能够吸引更多的玩家,但在收入方面未必能带来预期的增长。因此,如何制定合理的定价策略以平衡销量与收入,成为开发商和发行商需要重点考虑的问题。 -
开发商与发行商的市场角色
大型开发商和发行商通常在市场中占据主导地位,它们拥有更多的资源和市场推广能力,因此更容易获得较高的销量和收入。然而,独立开发者也有机会通过创新和差异化策略,在细分市场中取得成功。尤其是一些独立游戏通过创新的玩法和独特的艺术风格,获得了广泛的市场认可。
总的来说,本研究为游戏开发者、发行商以及相关从业者提供了关于游戏市场表现的关键洞察。未来的研究可以进一步细化到不同地区市场、玩家行为模式的差异性,探讨更多的影响因素,以帮助游戏行业在全球范围内实现持续增长和创新。
相关文章:
Python数据分析-Steam 收入排名前 1500 的游戏
一、研究背景 随着全球数字化进程的加速,电子游戏产业已成为全球娱乐产业的重要组成部分,吸引了越来越多的资本与消费者关注。特别是基于互联网的游戏平台,如Steam,已成为全球范围内发行和销售游戏的重要渠道。Steam平台不仅为玩…...
Android14请求动态申请存储权限
Android14请求动态申请存储权限 Android14和Android15存储权限有增加多了选择部分,还是全部。一个小小的存储权限真的被它玩出了花来。本来Android13就将存储权限进行了3个细分,是图片,音频还是视频文件。 步骤一:AndroidManife…...
Doris:数据库建表最佳实践
目录 一、表模型推荐归约 二、字段推荐归约 三、建表推荐归约 四、建表强制归约 五、最佳实践 Doris 数据表模型上目前分为三类:DUPLICATE KEY, UNIQUE KEY, AGGREGATE KEY。因为数据模型在建表时就已经确定,且无法修改。所以,选择一个合…...
Parallels Desktop 20(Mac虚拟机) v20.0.0 for Mac 最新破解版(支持M系列)
Parallels Desktop 20 for Mac 正式发布,完全支持 macOS Sequoia 和 Windows 11 24H2,并且在企业版中引入了全新的管理门户。 据介绍,新版本针对 Windows、macOS 和 Linux 虚拟机进行了大量更新,最大的亮点是全新推出的 Parallels…...
【已解决】华为AR100-S路由器 恢复出厂后,找不到5G wifi的设置
前两帖讨论了华为AR100-S路由器: 一是用电脑浏览器访问web管理界面报错的解决,详情点这里! https://blog.csdn.net/weixin_62598385/article/details/142215136 再就是如何回复出厂,也即如何复位, 详情点这里ÿ…...
【MongoDB】--MongoDB批量操作
目录 一、批量更新 一、批量更新 /*** 批量更新的操作* return*/public int batchUpdate(){List<StudentDo> list new ArrayList<>(); //要修改的一批数据List<Pair<Query, Update>> updateList new ArrayList<>(list.size());BulkOperations …...
数据库常规操作
常用的 SQL 语法和操作: 数据定义语言(DDL) 1.创建数据库CREATE DATABASE database_name;2.删除数据库DROP DATABASE database_name;3.创建表CREATE TABLE table_name (column1 datatype constraints,column2 datatype constraints,...);4.删…...
基于STM32设计的水渠闸门远程控制系统(华为云IOT)(226)
文章目录 一、前言1.1 项目介绍【1】开发背景【2】项目实现的功能【3】项目硬件模块组成【4】ESP8266工作模式配置1.2 设计思路【1】整体设计思路【2】整体构架【3】上位机开发思路1.3 项目开发背景【1】选题的意义【2】可行性分析【3】参考文献【4】摘要1.4 开发工具的选择【1…...
鸿蒙开发(NEXT/API 12)【响应校验】远场通信服务
本协议栈框架支持校验响应功能,应用添加了响应校验器后,可在ResponseValidationCallback中判断响应是否符合预期,不符合那么框架会抛异常。 开发步骤 导包。 import { rcp } from kit.RemoteCommunicationKit;添加响应校验器并且发起请求。 …...
2024最新!!!iOS高级面试题,全!(二)
iOS应用是如何启动以及如何优化 pre-main阶段 加载动态链接器dyld到App进程 加载动态库(包括所依赖的所有动态库) Rebase 修正内部的指针指向 Bind 修正外部指针指向 初始化Objective C Runtime 包括oc的类、分类的注册,selector唯一性检查等…...
【C#生态园】构建你的C#操作系统:框架选择与实践
探秘C#操作系统开发框架:从框架选择到实际应用 前言 在当今信息技术高度发达的时代,操作系统开发框架为软件工程师提供了全新的可能性。本文将介绍一系列用于C#的操作系统开发框架,探讨它们的核心功能、使用场景、安装与配置方法以及API概览…...
ADB 安装教程:如何在 Windows、macOS 和 Linux 上安装 Android Debug Bridge
目录 一、ADB 介绍 二、Windows 系统安装 ADB 1. 下载 ADB 2. 解压文件 3. 验证 ADB 安装 4. 配置环境变量 5. 验证全局 ADB 使用 三、macOS 系统安装 ADB 1. 下载 ADB 2. 解压文件 3. 配置环境变量 4. 验证 ADB 安装 四、Linux 系统安装 ADB 1. 使用包管理器安装…...
java(2)方法的使用
目录 1.前言 2.正文 2.1方法的定义 2.2方法的调用过程 2.3方法的实参与形参 2.3.1形参 2.3.2实参 2.3.3参数传递 2.4方法的重载 3.小结 1.前言 哈喽大家好啊,今天博主继续带领大家学习java的基本语法,java的基础语法部分打算用六到七篇博文完…...
基于对数变换的图像美白增强,Matlab实现
博主简介:matlab图像处理(QQ:3249726188) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 本次案例是基于对数变换的图像美白增强,用matlab实现。 一、案例背景和算法介绍 这次案例是美白算法&…...
MySQL高阶1873-计算特殊奖金
目录 题目 准备数据 分析数据 总结 题目 编写解决方案,计算每个雇员的奖金。如果一个雇员的 id 是 奇数 并且他的名字不是以 M 开头,那么他的奖金是他工资的 100% ,否则奖金为 0 。 返回的结果按照 employee_id 排序。 准备数据 Crea…...
Ngnix 在windows上的简单使用
安装 下载链接: nginx: download 选择页面中 Stable version 下的windows版本直接下载解压到本地。 运行nginx: 解压到本地后,结构如图: cmd 进入到上图的根目录,运行 start nginx ,即可开启。 打开 http://localhost 进行查看,如果正常打开nginx的测试页面,则说…...
嵌入式开发--STM32延时函数重构
在做嵌入式开发的时候,经常需要用到延时函数,STM32为我们提供了一个标准的毫秒级延时函数:HAL_Delay()。这个函数用起来很方便,括号内的数就是延时的毫秒数。 但是程序中如果需要用到看门狗的话呢,这玩意需要经常喂的…...
OpenAI最新发布的o1-preview模型,和GPT-4o到底哪个更强?
近日,OpenAI又出新作,正式推出了名为o1的新模型,这是其“推理”系列的首个成员,自然引起了业界的广泛关注。本文旨在全面剖析o1模型的核心特征、独特优势,并通过与先前版本GPT-4o的细致对比,为读者揭示这一…...
基于Python+SQLite的课程管理系统
系统需求简介 1.1需求分析 实现一个具体的课程管理系统。按照软件工程思路设计简化的专业课数据库,尽量模拟现有专业课程一个学期的选课排课原型实际情况。(注:本系统由本人单独设计、开发完成) 1.2 数据结构需求分析 课程管理…...
每日一练 | USG系统默认安全区域
01 真题题目 关于USG系统(华为的安全网关产品)的安全防火墙的默认安全区域的描述,正确的是: A. 默认安全区域可以删除 B. 默认安全区域可以修改安全级别 C. 默认安全区域不能删除,但可以修改安全级别D. 默认安全区域…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...


