对LOL游戏数据集进⾏可视化分析
⼀、理解数据
1、采集数据
本数据集描述了LOL游戏相关信息,共包含51000条数据,共61个字段。下⾯是该数据集中包含的字段以及对各字段的解释:
gameId(游戏编号)
creationTime(创建时间)
gameDuration(游戏持续时间)
带千万的成语
seasonId(赛季编号)
winner(获胜者)(1 =团队1,2 =团队2)
First blood,  tower,  inhibitor, Baron,  dragon and Rift Herald:⼀⾎,⼀塔,⽔晶,第⼀条纳什男爵,⼤龙,峡⾕先锋 (1 = 团队1, 2 = 团队2, 0 = ⽆)
Champions and summoner spells for each team (Stored as Riot's champion and summoner spell IDs):每只队伍选择的英雄和召唤术(⽤英雄和召唤师技能编号表⽰)
The number of tower, inhibitor, Baron, dragon and Rift Herald kills each team has:塔,⽔晶,男爵,⼤龙和峡⾕先锋击杀数
The 5 bans of each team (Again, champion IDs are used):每个队伍的禁⽤英雄(英雄编号表⽰)
2、导⼊数据
import pandas as pd
ad_csv("games.csv")
3、查看数据集信息
print(df)
df.shape    //查看数据集⼤⼩
⼆、数据清洗
1、查缺失值
数据集中的信息太多,所以先计算所有缺失值总和,如果缺失值过多再进⼀步决定如何处理每⼀列的缺失值
none_number = sum(df.isnull().sum())  //查看缺失值总和
print(none_number)
幸运的是从结果来看数据集很完整,没有任何缺失值。
2、查看数据类型
我们继续往下处理,现在来看⼀看数据集中的数据类型都有哪些。
print(df.dtypes.value_counts())
表明该数据集中数据都为int型
3、转换类型
为了使结果更清晰,将gameDuration更改为以分钟为单位
df['gameDuration'] =df['gameDuration'].map(lambda x: x/60)
print(df)李沁男友
转化后的结果:
可以看见游戏持续时间(gameDuration)已经转化为分钟为单位了。
三、数据分析及可视化杨绣惠初恋
1、查看双⽅胜率
在winner列中,统计1和2出现的次数,化成饼状图,即为1队和2队的胜率。
代码如下:
trace0=go.Pie(labels=df['winner'].value_counts().index,values=df['winner'].value_counts().values,
hole=0.5,opacity=0.9,marker=dict(line=dict(color='white',width=1.3)))
layout=go.Layout()
data=[trace0]
fig=go.Figure(data,layout)
py.offline.plot(fig,filename='C:/Users/Sun Tianwen/Desktop/整体获胜情况分布.html')
⽣成的饼状图如下:
从结果来看,1队获胜26077次,⼆队获胜25413次,两队的胜率相近,符合游戏的公平性。
2、游戏时长分布
使⽤探索性分析⼯具dtale进⾏探究
代码如下:
import dtale
dtale.show(df, ignore_duplicate=True)
点击gameDuration后可以看见游戏时长的相关数据,如图所⽰
图中可以看出最短游戏时长为三分钟(有⼈挂机时,游戏三分钟允许投票重开),最长的游戏时长为78分钟,平均游戏时长30分钟。
直⽅图:
细分
可以看出来游戏的时长主要分布在20到40分钟。
英雄联盟在15和20分钟时开放投降选择(15分钟投降需要全票通过,20分钟投降需要四票通过),因此图中可以看出时长为15分钟和20分钟的场数显著多于旁边的时长对应场数,可以看出有很多玩家选择15分钟投降或者20分钟投降。
3、⼀⾎对获胜的影响
plot_bar_horizontal(input_col='firstBlood', target_col='winner', title_name='⼀⾎对获胜的影响')
获得⼀⾎的队伍胜率相对较⾼,在第⼀队的游戏中,⾸先获得⼀⾎时的胜率为59.48%,相较未获得⼀⾎的⽐赛⾼18%。在第⼆队的游戏中,获得⼀⾎时的胜率为58.72%,相较未获得⼀⾎的游戏⾼18%。
4、摧毁第⼀个⽔晶对获胜的影响
plot_bar_horizontal(input_col='firstInhibitor', target_col='winner', title_name='摧毁第⼀个⽔晶对获胜的影响')
李宇春的丈夫是谁?在游戏中拿到第⼀座⽔晶塔的队伍91%的情况下可以获胜,这⼀点在某种程度上是可以预见的,因为⾸先摧毁⽔晶塔代表队伍已经积累的⾜够的优势,⽽且⽔晶塔⼒量很强⼤,并且更具有价值。
5、击杀第⼀条男爵对获胜的影响
plot_bar_horizontal(input_col='firstBaron', target_col='winner', title_name='击杀第⼀条男爵对获胜影响')
统计数据显⽰,在游戏中击杀第⼀条男爵有80%的胜率。
6、击杀第⼀条⼤龙对游戏的影响
plot_bar_horizontal(input_col='firstDragon', target_col='winner', title_name='击杀第⼀条⼤龙对获胜的影响')
2手房交易税
俞飞鸿的老公在第⼀个队伍中,⾸先击杀第⼀条⼤龙的队伍胜率在68.6%,相较未取得优先的⽐赛胜率⾼36%。
7、⽪尔逊相关性
四、主要结论
1、游戏双⽅的胜率基本相同,⽐较公平。
2、游戏的时间主要集中在25到35分钟,玩家不会因为时间太短⽽觉得⽆聊,也不会因为时间过长⽽疲劳。
3、获得⼀⾎的队伍胜率提⾼了18%,因此游戏前期想要获胜,不仅要争取获得⼀⾎,还要避免被击杀导致送出⼀⾎。
4、摧毁第⼀座⽔晶的队伍胜率⾼达91%,同时击杀第⼀条男爵和⼤龙的胜率分别为80%和68%。
5、通过以上分析,影响队伍胜负的因素有很多,其中摧毁第⼀座⽔晶和击杀第⼀条男爵能显著提升胜率。
------------恢复内容结束------------