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()

10. 相关性可视化图 – 探索性数据分析
最后,要找出变量之间的相关性,我们可以利用相关函数。这将让你对不同变量之间的相关强度有一个清晰的了解。
# 相关性分析
df.corr()

这是一个相关矩阵,范围从+1到-1,其中+1表示高度正相关,-1表示高度负相关。
你甚至可以使用seaborn库将相关矩阵可视化,如下所示。
# 相关性图
sns.heatmap(df.corr())

结尾语
探索性数据分析(EDA)是任何分析的最重要部分,能帮助你了解关于数据的许多事情。通过EDA,你将能够找到大部分问题的答案。我已经尽量展示了用于数据探索的许多Python函数和可视化方法。希望本文对你有所帮助。
现在就说这么多吧!祝你愉快地使用Python 🙂
更多阅读:探索性数据分析