Python探索型数据分析(EDA):高效函数库指南

EDA – 探索性数据分析:使用Python函数(第1部分/共3部分)

在之前的文章中,我们已经介绍了如何使用图形方法进行探索性数据分析。在本文中,我们将专注于Python中用于探索性数据分析的函数。众所周知,探索性数据分析的重要性不言而喻,它提供了对数据的简要理解。那么,让我们直接开始吧!


探索性数据分析-EDA

  • EDA用于调查数据并总结关键见解。
  • 它将为您提供数据的基本理解,包括数据分布、空值等更多信息。
  • 您可以通过图形或一些Python函数来探索数据。
  • 分析将分为两种类型:单变量分析和双变量分析。在单变量分析中,您将分析单个属性;而在双变量分析中,您将分析一个属性与目标属性的关系。
  • 在非图形方法中,您将使用shape、summary、describe、isnull、info、datatypes等函数。
  • 在图形方法中,您将使用散点图、箱线图、条形图、密度图和相关图等图表。

加载数据

首先,我们将把泰坦尼克号的数据集加载到Python中,用于进行探索性数据分析(EDA)。

# 加载所需的库
import pandas as pd
import numpy as np
import seaborn as sns

# 加载数据
df = pd.read_csv('titanic.csv')

# 查看数据
df.head()
泰坦尼克号数据集预览

我们的数据已经准备好供探索了!


1. 数据的基本信息 – 探索性数据分析

df.info()函数将为我们提供有关数据集的基本信息。对于任何数据集,了解其基本信息是一个很好的起点。让我们看看它在我们的数据上是如何工作的。

# 基本信息
df.info()

# 描述数据
df.describe()
数据集基本信息
  • 描述数据 – 描述性统计信息。
数据集描述性统计

使用这些函数,您可以查看上面输出中显示的空值数量、数据类型和内存使用情况以及描述性统计信息。


2. 重复的值

你可以使用df.duplicated().sum()函数来计算重复值的总和,如果有的话。它会显示数据中重复值的数量。

# 查找重复值
df.duplicated().sum()

输出结果:0

该函数返回了’0’。这意味着我们的数据集中没有重复的值,这是一个非常好的现象。


3. 数据中的独特值

在Python中,您可以使用unique()函数找到特定列中唯一值的数量。

# 唯一值
df['Pclass'].unique()

df['Survived'].unique()

df['Sex'].unique()
array([3, 1, 2], dtype=int64)

array([0, 1], dtype=int64)

array(['male', 'female'], dtype=object)

unique() 函数返回了数据中存在的唯一值,这对于了解数据特征非常有用!


4. 将独特计数可视化

是的,你可以用可视化的方式展示数据中的唯一值。为此,我们将使用seaborn库。你需要调用sns.countplot()函数,并指定要绘制计数图的变量。

# 绘制唯一值

sns.countplot(df['Pclass']).unique()
计数图

太好了!你做得很好。就是这么简单。虽然探索性数据分析(EDA)有两种方法,图形与非图形的结合将会给你整体更大的画面。


找到空值

寻找空值是探索数据分析中最重要的一步。正如我多次强调的那样,确保数据质量至关重要。因此,让我们看看如何找到这些空值。

# 查找空值

df.isnull().sum()
乘客编号      0
是否幸存       0
乘客等级       0
姓名         0
性别         0
年龄        177
兄弟姐妹/配偶数  0
父母/子女数    0
船票编号       0
票价         0
客舱号       687
登船港口       2

dtype: int64

哦不,我们的’年龄’和’客舱号’变量中有一些空值。不过,别担心,我们很快会找到处理它们的方法。


6. 替换空值

嘿,我们有一个replace()函数,可以将所有的空值替换成特定的数据。它太好用了!

# 替换空值

df.replace(np.nan,'0',inplace = True)

# 现在检查更改
df.isnull().sum()
乘客编号    0
是否幸存     0
乘客等级     0
姓名       0
性别       0
年龄       0
兄弟姐妹/配偶数 0
父母/子女数   0
船票编号     0
票价       0
客舱号      0
登船港口     0

dtype: int64

哇!太棒了。如上所示,在数据中查找和替换空值非常容易。我已经用0替换了空值。你甚至可以选择更有意义的方法,例如平均值或中位数。


7. 了解数据类型

了解你正在探索的数据类型非常重要,而且也是一个简单的过程。让我们看看它是如何工作的。

# 数据类型

df.dtypes
乘客编号      int64
是否幸存       int64
乘客等级       int64
姓名         object
性别         object
年龄         object
兄弟姐妹/配偶数  int64
父母/子女数    int64
船票编号      object
票价         float64
客舱号       object
登船港口      object

dtype: object

就是这样。你必须按照所示使用 dtypes 函数,并且你将会得到每个属性的数据类型。


8. 过滤数据

是的,你可以根据一些逻辑过滤数据。

# 过滤数据

df[df['Pclass']==1].head()
过滤

您可以看到,上述代码仅返回属于类别1的数据值。


9. 一幅快速箱线图

只需一行代码,就可以为任何数值列创建一个箱线图。

# 箱线图

df[['Fare']].boxplot()
EDA箱线图

10. 相关性可视化图 – 探索性数据分析

最后,要找出变量之间的相关性,我们可以利用相关函数。这将让你对不同变量之间的相关强度有一个清晰的了解。

# 相关性分析

df.corr()
相关矩阵

这是一个相关矩阵,范围从+1到-1,其中+1表示高度正相关,-1表示高度负相关。

你甚至可以使用seaborn库将相关矩阵可视化,如下所示。

# 相关性图

sns.heatmap(df.corr())
Seaborn相关性图

结尾语

探索性数据分析(EDA)是任何分析的最重要部分,能帮助你了解关于数据的许多事情。通过EDA,你将能够找到大部分问题的答案。我已经尽量展示了用于数据探索的许多Python函数和可视化方法。希望本文对你有所帮助。

现在就说这么多吧!祝你愉快地使用Python 🙂

更多阅读:探索性数据分析

bannerAds