1.数据集下载

#下载数据集

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

!pip install seaborn --user -q

2.代码

# 导入包

# pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用于数据挖掘和数据分析,同时也提供数据清洗功能。

import pandas as pd

# seaborn就是在matplotlib基础上面的封装,方便直接传参数调用

import seaborn as sns

# matplotlib.pyplot是一个有命令风格的函数集合,它看起来和MATLAB很相似。每一个pyplot函数都使一副图像做出些许改变

import matplotlib.pyplot as plt

# 将csv文件读入并转化为数据框形式

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

# head( )函数读取前五行数据

df.head()

# 查看数据的基本统计信息(如索引、列数、列名、数据量、数据类型、缺失值、内存等)

df.info()

# 计算出每个特征有多少百分比是缺失的

# python的pandas库的isnull()函数,用来判断缺失值

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(10)

# 查看各代口袋妖怪的数量

df['generation'].value_counts().sort_values(ascending=False).plot.bar()

# 查看每个系口袋妖怪的数量

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

# 相关性热力图分析

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)

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

sns.pairplot(df[interested])

# 通过相关性分析heatmap分析五个基础属性

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")

for c in interested:

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

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

df[df.total_stats >= 525].shape

# 种族值分布

total_stats = df.total_stats

plt.hist(total_stats,bins=35)

plt.xlabel('total_stats')

plt.ylabel('Frequency')

plt.subplots(figsize=(20,12))

ax = sns.violinplot(x="type1", y="total_stats",

data=df, palette="muted")

# 种族值大于570的,但是不是神兽的

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

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

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

# 双系宝可梦数量统计

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()

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐