首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Python中进行探索式数据分析

探索性数据分析(Exploratory Data Analysis ,EDA)是对数据进行分析并得出规律的一种数据分析方法。它是一个数据试图讲述的故事。EDA是一种利用各种工具和图形技术(如柱状图、直方图等)分析数据的方法。

根据Tukey的说法(1961年的资料分析)

“分析数据的程序,解释此类程序结果的技术,计划数据收集以使其分析更容易,更精确或更准确的方法,以及适用于分析数据的(数学)统计的所有机制和结果。”

Python中的EDA

在python中有很多可用的库,例如pandas,NumPy,matplotlib,seaborn等。借助这些库,我们可以对数据进行分析并提供有用的见解。我将同时使用这些库和Jupyter Notebook。数据集介绍

我使用的数据集是“汽车”数据集,它具有汽车的不同特征,例如型号,年份,发动机和其他属性以及价格。它具有1990年至2017年的28年数据。

数据集地址:https://www.kaggle.com/CooperUnion/cardataset

数据描述

本文的目的是探索数据并为建模做好准备。

让我们开始吧!!!

Python中的探索性数据分析

首先,我们将导入EDA(探索性数据分析)所需的所有库。这是要做的第一件事也是最重要的事情。如果不导入库,我们将无法执行任何操作。

导入库

数据加载

导入库后,下一步是将数据加载到数据框中。要将数据加载到数据框中,我们将使用pandas库。它支持各种文件格式,例如逗号分隔值(.csv),excel(.xlsx,.xls)等。

要读取数据集,可以将数据文件存储在同一目录中并直接读取,或者在读取数据时提供数据文件所在数据文件的路径。

前5行

现在,数据已加载。让我们检查数据集的前5行。

根据以上结果,我们可以看到python中的索引从0开始。

底部5行

要检查数据框的维数,让我们检查数据集中存在的行数和列数。

数据形状

数据集中共有11914行和16

数据集的简明信息

现在,检查数据类型以及数据集中所有变量的摘要。它包括存在的非空值的数量。

如果变量中存在字符串,则数据类型将作为对象存储。另外,如果数据分别具有数值和十进制值,则它将为int或float。MSRP(汽车价格)存储为int数据类型,而Driven_wheels存储为对象数据类型。

以上结果表明,许多变量(例如发动机燃料类型,发动机HP,发动机汽缸,门数和市场类型)在数据中缺少值。

我们可以通过另一种方法检查数据类型:

打印数据集的列

由于列的名称很长,让我们重命名它们。

重命名列

删除列

删除数据框不需要的列。数据中的所有列不一定都相关。在这个数据中,受欢迎程度、门的数量、车辆大小等列不太相关。所以从数据集中删除这些变量。

缺失值:

上述结果表明,在12个变量中,Fuel_type、HP和cylinder这3个变量有缺失值。

让我们检查一下列中缺失数据的百分比

有许多方法可以处理这些缺失的值。

1.删除

2.插补

我们可以删除存在缺失值的行,也可以将缺失值替换为平均值,中位数或众数等值。

由于丢失的数据百分比非常少,我们可以从数据集中删除那些行。

默认情况下,如果任何变量的值缺失,则drop函数将删除整行。

删除缺失值之后,现在缺失值的计数为0。这意味着数据集中不存在缺失值。

删除缺失值后,检查存在的行数。

原来的行数是11914,现在剩下的行数是11813。

统计摘要

现在,让我们找出数据集的统计总结或五点总结。五点总结给出描述性总结,包括每个变量的均值、中位数、众数、编号、行数、最大值和最小值。

对于具有对象数据类型变量的Mean, standard deviation, max, and percentile values设为NaN 。

对于具有int数据类型变量的 unique, top, frequency设为NaN 。

从描述摘要得出,共有47种车和904款车型。数据显示雪佛兰拥有最多的11115辆汽车。该车的平均价格为40581.5美元。价格的第50 百分位数或中位数是29970。价格的平均值和中位数之间存在巨大差异。这说明价格变量高度偏斜,我们可以使用直方图直观地进行检查。

数据可视化

顾名思义,数据可视化是使用各种类型的图,图形等观察数据。各种图包括直方图,散点图,箱线图,热图等。我们将使用matplotlib和seaborn一起可视化一些变量

直方图(分布图)

直方图用于显示数值变量的形状和分布。对于类别变量,它显示变量中存在的类别计数。

从两个直方图中都可以看出,HP变量分布很均匀。它有点向右倾斜。这意味着它有些偏右,但分布正常。但是,价格变量高度偏斜。

分类变量的直方图

这是“制造变量” 的计数图。每个条形图都显示数据集中存在的类别计数。

离群值检查

离群值是与其他值或观察值明显不同的值。离群值会在建模中产生重大问题。因此,有必要找到异常值并对其进行处理。

异常值可以使用箱线图进行检测。箱线图使用四分位数描述变量分布。它也被称为盒须图。

以上所有箱线图显示,price和c_mpg变量中存在许多异常值。在Cylinders变量中,只有4个观测值是异常值。

根据箱形图,超出Q1(25个百分位数)和Q3(75个百分位数)或IQR(四分位数间距)范围之外的任何观测值均被视为异常值。

如果数据集中存在大量异常值,则必须对异常值进行处理。像地板,封盖之类的方法可用于估算离群值。

相关图

计算相关系数,找出两个变量之间的关系强度。相关范围从-1到1。-1相关值为强负相关,1为强正相关。0表示两个变量之间没有关系。

从以上的相关图中可以看出,有很多变量之间是紧密相关的。例如,c_mpg与h_mpg之间的相关值为0.85,接近于1。这意味着他们之间有很强的正相关关系。同理,Cylinders和c_mpg呈负相关。

散点图

使用Pairplot找出变量之间的关系。它绘制每个变量之间的散点图。散点图也可以单独使用。而pairplot将给出一行中所有数值变量之间的关系图。

尾注

EDA是整个数据科学过程中的重要步骤之一。据说模型构建大部分时间都用于EDA和特征工程。如果您想从数据中获取大量的信息,则需要进行大量的EDA。

作者:Manorama Yadav

deephub翻译组:gkkkkkk

DeepHub

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200426A04RCC00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券