数据分析-20-宠物小精灵数据挖掘(包含数据代码)
2023-12-26 18:29:53
0. 数据代码获取
关注公众号:『AI学习星球
』
回复:宠物小精灵
即可获取数据下载。
算法学习
、4对1辅导
、论文辅导
或核心期刊
可以通过公众号
或?v:codebiubiu
滴滴我
1. 项目描述
精灵宝可梦系列是一套由日本任天堂株式会社于1996年推出的一款游戏。独特的游戏系统广受大众的欢迎,年度产品销量近千万。
精灵宝可梦作品包括游戏、动画、漫画、卡片游戏及相关产品。宝可梦同时也是宝可梦世界所有虚构出来的物种所拥有的共同的名字。截至2017年10月,全系列的宝可梦共有805种。
基于此,我们可以对Pokémon的数据/变量进行统计分析,并从中发掘他们之间的关系,用可视化的方式进行直观的查看。
2. 数据集描述
字段名称 | 字段描述 | 数据类型 |
---|---|---|
Number | Pokédex中的Pokémon ID | 整型 |
Name | Pokémon名称 | 字符串 |
Type_1 | 主要类别 | 字符串 |
Type_2 | 副类别 | 字符串 |
Total | 基本统计值的和 | 整型 |
1. HP | 生命值 | 整型 |
2. Attack | 攻击值 | 整型 |
3. Defense | 防御值 | 整型 |
4. Sp_Atk | 特殊攻击值 | 整型 |
5. Sp_Def | 特殊防御值 | 整型 |
6. Speed | 速度值 | 整型 |
Generation | 属于第几代Pokémon | 整型 |
isLegendary | 是否为传说中的Pokémon | 布尔值 |
Color | Pokémon颜色 | 字符串 |
hasGender | 是否有性别 | 布尔值 |
Pr_male | 可能为男性的概率 | 浮点型 |
Egg_Group_1 | 蛋群分组1 | 字符串 |
Egg_Group_2 | 蛋群分组2(如果有的话) | 字符串 |
hasMegaEvolution | 是否拥有Mega进化的能力 | 布尔值 |
Height_m | Pokémon的高度(单位为m) | 浮点型 |
Weight_kg | Pokémon的重量(单位为kg) | 浮点型 |
Catch_Rate | 捕获率 | 整型 |
Body_Style | 身体形状 | 字符串 |
3. 项目任务
- 单变量分析
- 变量间关系分析
4. 项目实现
# 引入必要的包
import csv
import os
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
plt.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
pokemon_data = pd.read_csv('pokemon.csv')
pokemon_data.head()
4.1 单变量分析
plt.figure(figsize=(10, 5))
# Type_1 的数量统计图
ax1 = plt.subplot(1, 2, 1)
sns.countplot(x='Type_1', data=pokemon_data)
plt.title('主要类别的数量统计')
plt.xticks(rotation='vertical')
plt.xlabel('主要类别')
plt.ylabel('数量')
# Type_2 的数量统计图
plt.subplot(1, 2, 2, sharey=ax1)
sns.countplot(x='Type_2', data=pokemon_data)
plt.title('副类别的数量统计')
plt.xticks(rotation='vertical')
plt.xlabel('副类别')
plt.ylabel('数量')
plt.tight_layout()
plt.figure(figsize=(10, 5))
# Egg_Group_1 的数量统计图
ax1 = plt.subplot(1, 2, 1)
sns.countplot(x='Egg_Group_1', data=pokemon_data)
plt.title('蛋群分组1的数量统计')
plt.xticks(rotation=60)
plt.xlabel('蛋群分组1')
plt.ylabel('数量')
# Egg_Group_2 的数量统计图
plt.subplot(1, 2, 2, sharey=ax1)
sns.countplot(x='Egg_Group_2', data=pokemon_data)
plt.title('蛋群分组2的数量统计')
plt.xticks(rotation=60)
plt.xlabel('蛋群分组2')
plt.ylabel('数量')
plt.tight_layout()
# 其余单变量数量统计
plt.figure(figsize=(10, 5))
# isLegendary 的数量统计图
ax1 = plt.subplot(2, 3, 1)
sns.countplot(x='isLegendary', data=pokemon_data)
plt.title('是否为传说类型的数量统计')
plt.xlabel('是否为“传说”')
plt.ylabel('数量')
# hasGender 的数量统计图
plt.subplot(2, 3, 2, sharey=ax1)
sns.countplot(x='hasGender', data=pokemon_data)
plt.title('是否有性别的数量统计')
plt.xlabel('是否有性别')
plt.ylabel('数量')
# hasMegaEvolution 的数量统计图
plt.subplot(2, 3, 3, sharey=ax1)
sns.countplot(x='hasMegaEvolution', data=pokemon_data)
plt.title('是否有Mega进化的数量统计')
plt.xlabel('是否有Mega进化')
plt.ylabel('数量')
# 颜色 的数量统计图
plt.subplot(2, 3, 4)
sns.countplot(x='Color', data=pokemon_data)
plt.xticks(rotation=60)
plt.title('颜色的数量统计')
plt.xlabel('颜色')
plt.ylabel('数量')
# 身形 的数量统计图
plt.subplot(2, 3, 5)
sns.countplot(x='Body_Style', data=pokemon_data)
plt.xticks(rotation=90)
plt.title('身形的数量统计')
plt.xlabel('身形')
plt.ylabel('数量')
# 第n代 的数量统计图
plt.subplot(2, 3, 6)
sns.countplot(x='Generation', data=pokemon_data)
plt.title('第n代的数量统计')
plt.xlabel('第n代')
plt.ylabel('数量')
plt.tight_layout()
# 数值型数据分布统计
plt.figure(figsize=(10, 5))
numeric_cols = ['Total', 'HP', 'Attack', 'Defense', 'Sp_Atk', 'Sp_Def', 'Speed', 'Pr_Male', 'Height_m', 'Weight_kg', 'Catch_Rate']
for i in range(len(numeric_cols)):
plt.subplot(4, 3, i + 1)
sns.distplot(pokemon_data[numeric_cols[i]].dropna())
plt.xlabel(numeric_cols[i])
plt.tight_layout()
4.2 变量间关系分析
plt.figure()
sns.pairplot(pokemon_data.dropna(), vars=numeric_cols, size=1)
corr_df = pokemon_data[numeric_cols].corr()
corr_df
plt.figure()
# 关闭格子线 (grid line)
ax = plt.gca()
ax.grid(False)
plt.imshow(corr_df, cmap='jet')
plt.xticks(range(len(numeric_cols)), numeric_cols, rotation='vertical')
plt.yticks(range(len(numeric_cols)), numeric_cols)
plt.colorbar()
plt.tight_layout()
5. 项目总结
该项目通过分析Pokemon数据,实践了Python数据分析常用的可视化操作,包括:
- 单变量数据可视化
- 变量间关系可视化
关注公众号:『AI学习星球
』
回复:宠物小精灵
即可获取数据下载。
算法学习
、4对1辅导
、论文辅导
或核心期刊
可以通过公众号
或?v:codebiubiu
滴滴我
文章来源:https://blog.csdn.net/weixin_42363541/article/details/135217139
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!