文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么在jupyter中分析游戏的开发与销售情况

2023-06-02 02:39

关注

这篇文章主要讲解了“怎么在jupyter中分析游戏的开发与销售情况”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么在jupyter中分析游戏的开发与销售情况”吧!

导入必须的库

在对相关数据进行分析之前,先导入必要的库:

import pandas as pdimport matplotlib.pyplot as pltimport numpy as np#为了中文能正常显示from matplotlib import font_manager#让图片显示在交互页面%matplotlib inline

代码正文

从csv文件中导入数据

pandas是作为Python进行数据分析的工具库,含有大量简单便捷的方法,在进行数据处理是实用性极强。其中read_csv方法能够从csv文件中读取数据并保存至DataFrame对象中,方法如下

#读取csv文件df = pd.read_csv('vgsales.csv')#显示文件前5行df.head()

结果如下:

怎么在jupyter中分析游戏的开发与销售情况

数据清洗与整理

有爬虫经验的小伙伴应该清楚,在爬取大量数据时,难免会有数据的缺失或者数据错误的情况出现,所以导入数据后最关键的一步就是观察数据是否有上述情况出现,清洗与整理后的数据分析出的结果更加准确。

常见的数据清洗方法有:填充缺失或错误数据或删去含有缺失或错误数据的一行。本文采用后者,方法如下:

#检查是否有缺失值,True表示含有缺失数据df.isnull().any()

怎么在jupyter中分析游戏的开发与销售情况

#删去缺失值df = df.dropna()df.info()

怎么在jupyter中分析游戏的开发与销售情况

数据分析

第一个实例对游戏平台进行分析,因为数据比较庞大,所以我们只分析载有游戏多于100的游戏平台。

首先根据DataFrame索引出游戏平台(Platform)这一列数据,然后使用value_counts()方法对游戏平台载有的游戏统计,最后截取出我们需要的数据。

#取载有游戏多于100的游戏平台pf = df['Platform'].value_counts().sort_values()#sort_values()为排列操作pf = pf[pf>100]pf

怎么在jupyter中分析游戏的开发与销售情况

#游戏平台名称形成列表作为Y轴数据pf_name = pf.index.tolist()#载有游戏个数形成列表作为X轴数据pf_number = pf.values.tolist()#建立画布fig,ax = plt.subplots(figsize = (16,10),dpi = 80)#y轴范围length = np.arange(len(pf_name))#绘制条形图ax.barh(length,pf_number,tick_label = pf_name)#设置标题和标签ax.set_title("The top 20 of Platform",fontsize = 18)ax.set_xlabel("Number",fontsize = 16)#添加数据标签for a,b in zip(length,pf_number): ax.text(b+40,a-0.15,b,ha = "center",fontsize = 12)plt.savefig('E:/jupyter/result/Game_sale1.jpg')plt.show(

结果如下图:

怎么在jupyter中分析游戏的开发与销售情况

那如果我们想知道各个地区游戏的销售情况,该怎么办呢?

#查看年份是否有不适合的值df['Year'].value_counts().sort_index()

得到了如下销售情况:

怎么在jupyter中分析游戏的开发与销售情况

在看到年份的索引时,奇怪的出现了还未到的2020年,说明是数据错误,就需要对这一行数据进行清洗。方法如下:

df = df[~df["Year"].isin([2020.0])]#~表示取反df['Year'].value_counts().sort_index()

敲黑板!这里我们要获取每一年的各个地区所有游戏销售额总值,我们就要用到cumsum这个方法——cumsum方法通俗说是一个累加和,注意红框里的数据,这里是依据年份将每部游戏的销售额相加

#cumsum函数是累加和,即按照Year这一列,将相同年份的销售额相加df['sum_sales'] = df['Global_Sales'].groupby(df['Year']).cumsum()df['NA_sum_sales'] = df['NA_Sales'].groupby(df['Year']).cumsum()df['EU_sum_sales'] = df['EU_Sales'].groupby(df['Year']).cumsum()df['JP_sum_sales'] = df['JP_Sales'].groupby(df['Year']).cumsum()df['Other_sum_sales'] = df['Other_Sales'].groupby(df['Year']).cumsum()df.head(10)

得到如下结果:

怎么在jupyter中分析游戏的开发与销售情况

用小脑瓜想一想,需要的数据是一年的总销售额,所以只需要保留每一年最后一行的销售额,这里可以用drop_duplicates去重,并keep参数保留最后一行即可。

#去重——得到每年各个游戏的销售值sale_df = df.drop_duplicates(subset=['Year'],keep='last')sale_df.head()#强制转换类型sale_df['Year'] = sale_df['Year'].astype(int)sale_df.head()#按照年份序列排序-升序(ascending调节升序或降序)sale_df = sale_df.sort_values(by="Year" , ascending=True)sale_df.head()

怎么在jupyter中分析游戏的开发与销售情况

为了方便看到销售额变化趋势,我们绘出其变化曲线图如下:

#绘制条形图my_font = font_manager.FontProperties(fname=r"c:\windows\fonts\simsun.ttc")#准备数据y_1 = sale_df['sum_sales'].values.tolist()y_2 = sale_df['NA_sum_sales'].values.tolist()y_3 = sale_df['EU_sum_sales'].values.tolist()y_4 = sale_df['JP_sum_sales'].values.tolist()y_5 = sale_df['Other_sum_sales'].values.tolist()x_1 = sale_df['Year'].values.tolist()#x轴范围x = range(len(x_1))#建立画布plt.figure(figsize=(20,10),dpi=80)#绘制折线图,label为lengend的标签plt.plot(x,y_1,label = '全球')plt.plot(x,y_2,label = '北美')plt.plot(x,y_3,label = '欧洲')plt.plot(x,y_4,label = '日本')plt.plot(x,y_5,label = '其他')#调整x轴刻度_xtick_labels = ['{}年'.format(i) for i in x_1]plt.xticks(list(x)[::3],_xtick_labels[::3],fontproperties = my_font,fontsize = 16)#填写x,y轴标签plt.xlabel('年份',fontproperties = my_font,fontsize = 16)plt.ylabel('销售额',fontproperties = my_font,fontsize = 16)plt.title('销售额的变化曲线',fontproperties = my_font,fontsize = 18)#栅栏plt.grid(alpha=0.5)plt.legend(prop = my_font,loc = 'upper left')plt.savefig('E:/jupyter/result/Game_sale2.jpg')plt.show()

得到销售额的变化曲线:

怎么在jupyter中分析游戏的开发与销售情况

接下来我们来了解一下世界前十的游戏出版商。方法类似于第一个实例,请看注释:

#获取出版商前十pb = df['Publisher'].value_counts().sort_values(ascending=False).head(10)#ascending可调整降序或升序#设置画布的尺寸plt.figure(figsize=(8,8))#将出版商的名字作为对应数据的标签labels = pb.index#准备数据x = pb.values#绘制空心饼图x1 = [1,0,0,0,0,0,0,0,0,0]#用于空心plt.pie(x , radius=1.0,pctdistance = 0.75,labels=labels,autopct='%1.1f%%')plt.pie(x1, radius=0.5,colors = 'w')plt.title('Top 10 of Publisher',fontsize = 16)plt.savefig('E:/jupyter/result/Game_sale3.jpg')plt.show()

世界前十游戏出版商如下:

怎么在jupyter中分析游戏的开发与销售情况

萝卜青菜各有所爱,每个人喜欢的都不一样,游戏也是如此,那么什么游戏类型最受大众喜爱呢?我们需要一个只包含游戏类型和销售额的DataFrame对象,先用sum()方法统计,后用loc索引即可。方法如下

#按照游戏类型将每一处的销售额相加Group = df.groupby(['Genre']).sum().loc[:,'NA_Sales':'Other_Sales']Group

得到如下喜好结果:

怎么在jupyter中分析游戏的开发与销售情况

直观显示,绘制出不同游戏类型的销售额图,看看小伙伴们喜欢什么类型的游戏!

#显示中文my_font = font_manager.FontProperties(fname=r"c:\windows\fonts\simsun.ttc")#建立画布plt.figure(figsize=(8, 12))#x轴标签xlabel = ['NA_Sales','EU_Sales','JP_Sales','Other_Sales']#y轴范围与标签y = range(len(Group.index))ylabel = Group.index#绘制热力图plt.imshow(Group, interpolation='nearest', cmap=plt.cm.pink,aspect='auto')#cmap为热力图颜色变化#调整x,y轴刻度plt.xticks(list(range(4))[::1],xlabel[::1],fontproperties = my_font,fontsize = 12)plt.yticks(list(y)[::1],ylabel[::1],fontproperties = my_font,fontsize = 12)#设置x,y轴标签plt.xlabel('销售额',fontproperties = my_font,fontsize = 14)plt.ylabel('游戏类型',fontproperties = my_font,fontsize = 14)plt.colorbar(shrink=0.8)#改变Bar的长度plt.title('The Heat Map of Sales',fontproperties = my_font,fontsize = 16)plt.savefig('E:/jupyter/result/Game_sale4.jpg')plt.show()

得到的销售额情况如下,左边坐标表示不同游戏类型,色度情况表示销售量,颜色越浅表示销量越高!

怎么在jupyter中分析游戏的开发与销售情况

感谢各位的阅读,以上就是“怎么在jupyter中分析游戏的开发与销售情况”的内容了,经过本文的学习后,相信大家对怎么在jupyter中分析游戏的开发与销售情况这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯