📜  Python中的探索性数据分析

📅  最后修改于: 2020-04-16 15:20:42             🧑  作者: Mango

什么是探索性数据分析(EDA)?

EDA是数据分析下的一种现象,用于更好地理解数据方面,例如:
–数据的主要特征
–变量和它们之间的关系
–识别哪些变量对我们的问题很重要
我们将研究各种探索性数据分析方法,例如:

  • 描述性统计,一种简要概述我们正在处理的数据集的方法,包括样本的一些度量和功能
  • 分组数据[分组依据的基本分组]
  • 方差分析,这是一种将观察集中的变化分为不同成分的计算方法。
  • 相关性和相关方法

我们将使用的数据集是智利投票数据集,您可以在Python中将其导入为:

import pandas as pd
Df = pd.read_csv("https://vincentarelbundock.github.io / Rdatasets / csv / car / Chile.csv")

描述性统计

描述性统计信息是了解数据特征并对其进行快速汇总的一种有用方法。Python中的Pandas提供了一个有趣的方法describe()。describe函数对数据集应用基本的统计计算,例如极值,数据点计数的标准偏差等。任何缺失值或NaN值都会自动跳过。describe()函数可以很好地描述数据的分布情况。

DF.describe()

这是在上面的代码上运行时将获得的输出:

另一个有用的方法是value_counts(),它可以获取归类于一系列值中的每个类别的计数。例如,假设您正在处理一个客户数据集,这些客户数据集按年龄名称分为青年,中型和老类别,您的数据框为“ DF”。您可以运行此语句来了解有多少人属于各自的类别。在我们的数据集示例中,可以使用教育列

DF["education"].value_counts()

上面代码的输出将是:

一个更有用的工具是boxplot,您可以通过matplotlib模块使用它。箱线图是数据分布的图形表示,显示了极值,中位数和四分位数。我们可以通过使用箱线图轻松找出异常值。现在考虑我们一直在处理的数据集,让我们在属性填充上绘制一个箱线图

import pandas as pd
import matplotlib.pyplot as plt
DF = pd.read_csv("https://raw.githubusercontent.com / fivethirtyeight / data / master / airline-safety / airline-safety.csv")
y = list(DF.population)
plt.boxplot(y)
plt.show()

输出图看起来像这样,发现了异常值:

分组数据

分组依据是Pandas中一种有趣的度量,它可以帮助我们弄清楚不同类别属性对其他数据变量的影响。让我们看一个关于同一数据集的示例,我们希望弄清楚人们的年龄和教育程度对投票数据集的影响。

DF.groupby(['education', 'vote']).mean()

输出结果将是这样的:

如果按输出表分组不太容易理解,则进一步的分析人员将使用数据透视表和热图对其进行可视化。

方差分析

执行此操作以找出不同类别的分类数据之间的关系。
在ANOVA下,我们有两种测量结果:
– F-testscore:这表明群体均值的变化超过变异
– p值:显示结果的重要性
这可以使用Python模块scipy方法名称f_oneway()
语法:

import scipy.stats as st
st.f_oneway(sample1, sample2, ..)

这些样本是每个组的样本测量值。
作为结论,可以说,如果ANOVA检验为我们提供较大的F检验值和较小的p值,则其他变量与类别变量之间存在很强的相关性。

相关计算

关联是上下文中两个变量之间的简单关系,因此一个变量会影响另一个变量。相关性与引起行为不同。计算变量之间相关性的一种方法是找到Pearson相关性。在这里,我们找到两个参数,即皮尔逊系数和p值。可以说,当Pearson相关系数接近1或-1且p值小于0.0001时,两个变量之间存在很强的相关性。
Scipy模块还提供了一种进行皮尔逊相关分析的方法,语法为:

import scipy.stats as st
st.pearsonr(sample1, sample2)

这里的样本是您要比较的属性。