阿里云天池Python训练营

本节主要介绍python中的数据分析方法,结合之前的学习内容,对于宝可梦精灵中的各种精灵数据进行分析,找寻其中的最强精灵。

 

一、数据分析实战

1. 数据集下载

!wget -O pokemon_data.csv https://pai-public-data.oss-cn-beijing.aliyuncs.com/pokemon/pokemon.csv

从https://pai-public-data.oss-cn-beijing.aliyuncs.com/pokemon/pokemon.csv上自动下载数据集并存储为pokemon_data.csv文件

 

2. 导入模块

import pandas as pd

import seaborn as sns

import matplotlib.pyplot as plt

导入数据分析需要的相关模块

3. 数据读取

df = pd.read_csv("./pokemon_data.csv")

利用pd.read_csv函数读取数据集

利用pd.head()函数 查看数据前5行内容

利用df.info()函数 查看数据完整信息

数据共有801行 41列(801种宝可梦 每种宝可梦有41个特征)

 4. 特征缺失情况

percent_missing = df.isnull().sum() * 100 / len(df)

missing_value_df = pd.DataFrame({ 'column_name': df.columns,     'percent_missing': percent_missing })

missing_value_df.sort_values(by='percent_missing', ascending=False)).head()

计算特征确实百分比并显示前5个

type2缺失比最高 大部分通常宝可梦只有一种属性

 5.数据分布情况

df['generation'].value_counts().plot.bar()

利用df['generation'].value_counts()来计算不同世代的宝可梦数量 并绘制柱形图

如图所示 第5代宝可梦数量最多 第6代宝可梦数量最少

df['type1'].value_counts().sort_values(ascending=True).plot.barh()

利用df['type1'].value_counts()来计算不同属性的宝可梦数量 并绘制柱形图

如图所示 水系宝可梦数量最多 飞行系宝可梦数量最少

plt.subplots(figsize=(10, 10))

sns.heatmap(df[df['type2']!='None'].groupby(['type1', 'type2']).size().unstack(), linewidths=1, annot=True, cmap="Blues" )

plt.xticks(rotation=35)

plt.show()

统计双系宝可梦的数量

6.相关性分析

plt.subplots(figsize=(20,15))
ax = plt.axes()
ax.set_title("Correlation Heatmap")
corr = df.corr()
sns.heatmap(corr, 
            xticklabels=corr.columns.values,
            yticklabels=corr.columns.values)

利用df.corr()来计算不同特征间相关性 并利用sns.heatmap绘制热力图

如图所示 攻击力和基础值密切相关 传说级宝可梦的孵蛋距离都很长 孵蛋距离越短的宝可梦越开心 越高越大越珍贵的宝可梦越不开心

sns.jointplot("base_egg_steps", "experience_growth", data=df, height=5, ratio=3, color="g")

利用sns.heatmap绘制孵蛋步数与经验成长之间的散点图

如图所示 孵蛋步数基本在5000~10000步 但并不是步数越多经验越高

sns.jointplot("attack", "hp", data=df, kind="kde")

利用sns.jointplot绘制攻击力与血量之间的核密度估计图

如图所示 攻击力与血量成正比 但血量的影响系数较小 宝可梦集中在50血量 50-100攻击

7.战斗分析

只关注六个基础值:血量 攻击力 防御力 特攻 特防 速度

interested = ['hp','attack','defense','sp_attack','sp_defense','speed']

sns.pairplot(df[interested])

利用sns.pairplot绘制散点图矩阵

plt.subplots(figsize=(10,8))

ax = plt.axes()

ax.set_title("Correlation Heatmap")

corr = df[interested].corr()

sns.heatmap(corr, xticklabels=corr.columns.values, yticklabels=corr.columns.values, annot=True, fmt="f",cmap="YlGnBu")

每种战斗属性的均值在前1/3左右 各属性值之间大部分都是成正比的

8.挑选宝可梦

for c in interested:    

     df[c] = df[c].astype(float)

df = df.assign(total_stats = df[interested].sum(axis=1))

利用df.assign()将战斗属性值进行加和存储为新的特征数值战斗力:total_stats

total_stats = df.total_stats

plt.hist(total_stats,bins=35)

plt.xlabel('total_stats')

plt.ylabel('Frequency')

利用plt.hist()绘制战斗力的分布直方图

水平轴表示战斗力的高低 垂向表示出现的频次

plt.subplots(figsize=(20,12))
ax = sns.violinplot(x="type1", y="total_stats", data=df, palette="muted")

利用sns.violinplot() 绘制不同属性战斗力的小提琴图

水平轴表示不同的属性 垂向表示战斗力的高低 形状表示数据分布

df[(df.total_stats >= 570) & (df.is_legendary == 0)]['name'].head(10)

过滤和排序确定 十大最强非传说级的宝可梦

分别是妙蛙花 喷火龙 水箭龟 比雕 胡地 呆河马 耿鬼 袋兽 大甲 暴鲤龙

阿里云天池Python训练营相关推荐

  1. 阿里云天池Python训练营(day10打卡)

    [ML&Py]×阿里云天池Python训练营(day10打卡)--Python数据分析:从0完成一个宝可梦数据分析实战 一.学习内容概览 1.1 学习地址:[阿里云天池python训练营](h ...

  2. 阿里云天池 Python训练营Task4: Python数据分析:从0完成一个数据分析实战 学习笔记

    本学习笔记为阿里云天池龙珠计划Python训练营的学习内容,学习链接为:https://tianchi.aliyun.com/specials/promotion/aicamppython?spm=5 ...

  3. 阿里云天池 Python训练营Task3: Python基础进阶:从函数到高级魔法方法 学习笔记

    本学习笔记为阿里云天池龙珠计划Python训练营的学习内容,学习链接为:https://tianchi.aliyun.com/specials/promotion/aicamppython?spm=5 ...

  4. 阿里云天池 Python训练营Task2: Python基础练习:数据结构大汇总 学习笔记

    本学习笔记为阿里云天池龙珠计划Python训练营的学习内容,学习链接为:https://tianchi.aliyun.com/specials/promotion/aicamppython?spm=5 ...

  5. 阿里云天池 Python训练营Task1:从变量到异常处理

    本学习笔记为阿里云天池龙珠计划Python训练营的学习内容,学习链接为:https://tianchi.aliyun.com/specials/promotion/aicamppython?spm=5 ...

  6. 阿里云天池Python训练营任务一

    变量.运算符与数据类型 注释 运算符 变量和赋值 数据类型与转换 print() 函数 位运算 原码.反码和补码 按位非操作 ~ 按位与操作 & 按位或操作 | 按位异或操作 ^ 按位左移操作 ...

  7. 阿里云天池 Python训练营Task5:Python训练营测试 学习笔记

    一.学习知识点概要 本次是Python训练营的测试,在45分钟内完成25题,满分100分及格80分.题目主要考察Task1到Task3里面的Python基础知识.在我随到的25道题里,知识点有: 变量 ...

  8. 阿里云天池Python训练营(第8天)

    宝可梦数据分析-平民最强宝可梦选择方案 数据集下载 !wget -O pokemon_data.csv https://pai-public-data.oss-cn-beijing.aliyuncs. ...

  9. 阿里云天池SQL训练营学习记录

    SQL训练营任务 打卡目录 SQL训练营任务 前言 一.Task01打卡 二.Task02打卡 三.Task03打卡 总结 一.算术函数 二.字符串函数 三.日期函数 四.转换函数 五.LIKE谓词 ...

最新文章

  1. Linux io模型及函数调用,Linux 网络编程的5种IO模型:信号驱动IO模型
  2. win7安装git客户端和简单配置
  3. 模板 - 快速沃尔什变换
  4. jmeter-5.3 测试http接口动态数据 windows+Linux双环境
  5. OpenShift 4 - 解决 OpenShift 中 elasticsearch 环境的 Log4j 漏洞
  6. Python学习笔记(未完)
  7. IOUtils快速进行内容复制与常用方法
  8. ListView的优化
  9. Django实现登录注册
  10. 全民社会保障月供制度的客观理由
  11. 计算机在医疗设备中的应用,计算机在医疗设备管理中的应用
  12. JS——判断变量类型方法汇总
  13. 第二集 第一魂环 第九章
  14. java的JVM虚拟机相关知识,简单易懂。
  15. WordPress 文章点赞
  16. Linux 驱动程序 USB控制
  17. 前端做CA认证碰到的坑
  18. Floorplan后端概念合集
  19. Dijkstra算法为什么权值不能是负值
  20. HHR计划---作业复盘-直播第三课

热门文章

  1. 使用PowerShell 创建SharePoint 网站
  2. Linux2.6 内核的 Initrd 机制解析
  3. 程序异常捕获库 - CrashRpt
  4. Office2019、Office365自定义安装
  5. spark toDS() toDF()和import spark.implicits._ 报红,无法导入
  6. #25 李雷向韩梅梅求婚
  7. VMProtect SDK使用日记
  8. 什么是 Git? - 探索分布式版本控制工具
  9. arduino编乐谱_Arduino教程——手动添加库并使用
  10. sentinel 整合dubbo限流