pokemon
引入依赖和数据
1 |
|
探索数据
1 |
|
OUT:
Name | Type 1 | Type 2 | Total | HP | Attack | Defense | Sp. Atk | Sp. Def | Speed | Stage | Legendary | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
# | ||||||||||||
75 | Graveler | Rock | Ground | 390 | 55 | 95 | 115 | 45 | 45 | 35 | 2 | False |
82 | Magneton | Electric | Steel | 465 | 50 | 60 | 95 | 120 | 70 | 70 | 2 | False |
79 | Slowpoke | Water | Psychic | 315 | 90 | 65 | 65 | 40 | 40 | 15 | 1 | False |
123 | Scyther | Bug | Flying | 500 | 70 | 110 | 80 | 55 | 80 | 105 | 1 | False |
9 | Blastoise | Water | NaN | 530 | 79 | 83 | 100 | 85 | 105 | 78 | 3 | False |
对比并了解下数据集的各个特征类型:
1 |
|
可以看到Type 2
这个特征有缺失值, 其他的没有,
而且显示的为正数型, 很符合数据分析的要求.
接下来用散点图研究特征Attack
和
Defense
的关系
1 |
|
我们这里参数使用了fit_reg=False
, 隐藏了回归线. 在
Seaborn
中是没有单独绘制散点图的方法的,但是通过参数设置,实现了散点图的绘制.如果此参数设置为True
接下来用箱线图看下各特征数据分布:
1 |
|
这个结果显示出, Total
,
Stage
以及Legendary
特征的数据是不适合在这里绘制散点图的,
需要对特征进行适当选择
1 |
|
这样,比较清晰的看出几个特征的数据分布情况了, 非数字的特征自动摒弃.
在研究 Seaborn, 我们知道还有用 i
中研究数据分布的函数sns.violinplot
,
我们尝试用它绘制特征Attack
相对于特征Type 1
的数据(这是一个分类行特征)的分布.
1 |
|
上面显示了特征Type 1
中唯一数据, 即数据的值.
1 |
|
pkmn_type_colors
是一个列表,
列出的颜色对应着特征Type 1
中的唯一值.
因为去掉了提琴图内部的竖线,所以整个图没有太乱,
想知道有竖线的是什么样子, 可以注释掉inner=None
这个参数.
之前我们删除了三个特征得到了一个变量stats_df
引用的数据集:
1 |
|
OUT:
Name | Type 1 | Type 2 | HP | Attack | Defense | Sp. Atk | Sp. Def | Speed | |
---|---|---|---|---|---|---|---|---|---|
# | |||||||||
128 | Tauros | Normal | NaN | 75 | 100 | 95 | 40 | 70 | 110 |
数据结果中看出来, 特征HP
Attack
Defense
Sp.Atk
Sp.Def
Speed
都是整数,
在df.info()
中也能看出来.现在有需求,
如果把这些特征分布进行可视化, 而且要放到一个坐标系中进行比较?
参考:
先使用pd.melt
函数, 将所指定的特征进行归并
1 |
|
OUT:
Name | Type 1 | Type 2 | Stat | value | |
---|---|---|---|---|---|
291 | Kabutops | Rock | Water | Attack | 115 |
406 | Marowak | Ground | NaN | Defense | 110 |
821 | Machoke | Fighting | NaN | Speed | 45 |
129 | Gyarados | Water | Flying | HP | 95 |
281 | Lapras | Water | Ice | Attack | 85 |
586 | Vaporeon | Water | NaN | Sp. Atk | 110 |
483 | Nidoqueen | Poison | Ground | Sp. Atk | 75 |
93 | Gengar | Ghost | Poison | HP | 60 |
791 | Vulpix | Fire | NaN | Speed | 65 |
481 | Nidoran‰ªÛ | Poison | NaN | Sp. Atk | 40 |
这样,在melted_df
数据集中的Stat
特征中的数据就是分类数据,
值是stats_df
中被归并的特征名称.
1 |
|
在此基础上, 我们绘制反应分类特征数据分布的图示.
1 |
|
还可以在此基础上,再叠加一层分类:
1 |
|
pokemon