[湃绅Python]探索性数据分析——用Python表达EDA的一种快速方法

机器学习的讨论通常围绕算法及其性能:如何提高模型准确性或降低其误差率 , 擅长特征工程或微调超参数 。 但是 , 首先要有一个概念:探索性数据分析或EDA 。
在建立机器学习模型之前 , 就已经有了EDA
这是数据科学的核心方面 , 有时会被忽视 。 要做任何事情的第一步都应该是首先了解您的数据:了解它 , 熟悉它 。 随着您增加数据量 , 此概念变得更加重要
展示数据集在本文中 , 我使用世界银行的经济数据集 , 描述了一些全球关键因素 , 例如GDP , 人口数量 , 地域面积等 。
首先 , 我们需要导入我们需要的库:
importpandasaspdimportnumpyasnpimportseabornassnsimportxlrdPandas , Numpy和Seaborn是EDA练习中的基础需要 。 由于我们使用Excel文件作为数据源 , 因此在这里我们需要安装xlrd库
现在 , 我们导入数据集并查看:
df=pd.read_excel('data.xlsx')df.head()
[湃绅Python]探索性数据分析——用Python表达EDA的一种快速方法
文章图片
生成描述性统计信息:
df.describe()
[湃绅Python]探索性数据分析——用Python表达EDA的一种快速方法
文章图片
查看数据集结构的快速方法:
df.shape#(215,10)检查变量类型:
df.dtypes
[湃绅Python]探索性数据分析——用Python表达EDA的一种快速方法
文章图片
它们都是浮点数 , 但国家名称(字符串)除外 。
显示摘要信息:
df.info()
[湃绅Python]探索性数据分析——用Python表达EDA的一种快速方法
文章图片
在这里 , 我们看到有些变量具有空值 。
缺失值缺失值可能是由多种原因引起的 , 例如数据输入错误或记录不完整 。 这是非常普遍的现象 , 会对从数据得出的结论产生重大影响 。
上面我们已经看到 , 该示例中的数据集缺少几个值 , 但让我们看看如何测试任何数据集 。
print(df.isnull().values.any())#True接下来 , 我们需要检查它们的数量:
print(df.isnull().sum().sum())#122现在 , 让我们再检查一下这些缺失值的摘要信息:
print(df.isnull().sum())
[湃绅Python]探索性数据分析——用Python表达EDA的一种快速方法
文章图片
这是.info()函数的另一面 。 处理缺失值有不同的策略 , 而且没有通用的方法 。
我们查看新的数据集:
在这里我们将删除缺失的值 , 并生成新的值 。
df1=df.copy()df1.dropna(inplace=True)df1.info()
[湃绅Python]探索性数据分析——用Python表达EDA的一种快速方法
文章图片
这里我们还剩余188条记录 , 没有空值 。
可视化数据集我们使用Seaborn可视化新数据集:
sns.pairplot(df1)
[湃绅Python]探索性数据分析——用Python表达EDA的一种快速方法
文章图片
这样可以快速识别变量之间的异常值 , 聚类和明显的相关性 。
【[湃绅Python]探索性数据分析——用Python表达EDA的一种快速方法】我们再结合变量“gdp”和“population”
sns.scatterplot(x='gdp.cap',y='population',data=https://pcff.toutiao.jxnews.com.cn/p/20200505/df1,hue='population')
[湃绅Python]探索性数据分析——用Python表达EDA的一种快速方法
文章图片
右上角有两个明显的异常值 。 与其他数据相比 , 有两个国家的人口水平非常极端 。 可以验证观察分析“population”变量本身:
sns.kdeplot(df1['population'],shade=True,color='orangered')
[湃绅Python]探索性数据分析——用Python表达EDA的一种快速方法
文章图片
检测异常值的另一种方法是绘制一些箱形图:
df1.plot(kind='box',subplots=True,layout=(3,3),sharex=False,sharey=False,figsize=(20,20),color='deeppink')
[湃绅Python]探索性数据分析——用Python表达EDA的一种快速方法