十分钟掌握数据分析及可视化基本操作

为了更好地掌握数据科学必备库Pandas的基本使用,本文通过精灵宝可梦的数据集实战,我们一起过一遍Pandas的基本操作,文中的代码都附有注释,并给出了结果的配图 。
话不多说,我们开始吧!

  • 导入pandas库,并读取csv文件
import pandas as pddf=pd.read_csv('pokemon/Pokemon.csv')
  • 查看DataFrame信息
df.info()# 数据类型,内存消耗等信息df.describe()# 统计特征,均值方差等
十分钟掌握数据分析及可视化基本操作

文章插图
 
  • 查看DataFrame的前几行以及后几行
pd.head(n=5)# 可以添加参数n,表示显示几行pd.tail()
十分钟掌握数据分析及可视化基本操作

文章插图
 
  • 显示行列信息
df.index# 列索引df.columns# 行索引df.values# array对象df.dtypes# 列元素属性
  • 删除行列
df.drop(['#'],axis=1,inplace=True)# 删除‘#’列数据,在原DataFrame上改变df.drop([1,2,3],axis=0)# 删除行索引为1、2、3的行,不在原DataFrame上改变
  • 修改列名(两种方法将‘Type 1’以及‘Type 2’中间的空格去掉)
df.rename(columns={'Type 1':'Type1','Type 2':'Type2'})df.columns=df.columns.str.replace(' ','')
  • 数据观察
df['Defense'].mean()# 所有宝可梦Defense的均值df['Attack'].argmax()# Attack最高的行索引df['Sp.Atk'].idxmax()# Sp.Atk最高的行索引df.sort_values('HP',ascending=False).head(3)# HP最多的前三条数据df['Type1'].unique()# Type1一共有哪些种类df['Type1'].nunique()# Type1一共有几种df['Type2'].value_counts()# Type2每种共有多少条
  • 检测空值
df.isnull().sum().sort_values(ascending=False)# 将空值判断进行汇总,按从高到低排序
十分钟掌握数据分析及可视化基本操作

文章插图
 
  • 空值填充
df['Type2'].fillna(value=https://www.isolves.com/it/cxkf/yy/Python/2020-08-17/"Unknown",inplace=True)# 将所有空缺值填为Unknowndf['Type2'].fillna(df['Type1'], inplace=True)# 将所有Type2空缺值填为其对应Type1的值
  • 删除空值
df.dropna(how='any')# 去除所有包含空值的行
  • 去重
df.drop_duplicates(['Type1'],keep='first')# 去除相同的Type1的数据,仅保留第一个
  • 数据条件查询
df[df['Name']=='Squirtle']# 查看杰尼龟的数据df[df['Type1'].isin(['Fire'])]# 查看所有Type1为Fire的数据df[(df['Generation']==1)&(df['Attack’]>=100)]# 查看Generation为1并且攻击力大于100的宝可梦
十分钟掌握数据分析及可视化基本操作

文章插图
【十分钟掌握数据分析及可视化基本操作】 
  • 数据访问方式(单行索引)
df.loc[3]# 访问行索引为3的数据df.iloc[3]# 访问第4行数据,两行代码结果相同
十分钟掌握数据分析及可视化基本操作

文章插图
 
  • 数据访问方式(区域索引,先行后列)
df.iloc[:5,:2]# 数据前5行前两列,按位置索引
十分钟掌握数据分析及可视化基本操作

文章插图
 
df.loc[10:15,['Generation','Attack','Sp.Atk']]# 数据行标签10-15,列标签Generation,Attack和Sp.Atk,按标签索引df.loc[[10,11,12,13,14,15],['Generation','Attack','Sp.Atk']]# 与上述写法结果相同
十分钟掌握数据分析及可视化基本操作

文章插图
 
df.loc[(df['Legendary']==True)|(df['Type1']=='Grass')]# Legendary为真或者Type1为Grass的数据
  • 参考资料:Pandas官方文档
接下来我们主要涉及seaborn以及matplotlib两个可视化库 。
上半篇我们主要使用matplotlib来进行柱状图、散点图、饼图折线图等的绘制,下半篇主要使用seaborn来进行箱线图、小提琴图、分簇散点图、热力图等的绘制 。本文是下半篇,上半篇链接在这里 。
箱线图箱线图可以提供数据位置及其分散情况的关键信息,主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比较 。
十分钟掌握数据分析及可视化基本操作


推荐阅读