Python 数据分析教程探索性数据分析
简介
探索性数据分析(Exploratory Data Analysis, EDA),是一种对数据进行初步分析的方法。其目的是发现数据的规律、异常和缺陷,为后续的分析或建模提供依据。Python 是数据分析和科学计算的热门语言,拥有丰富的数据分析库和工具。本教程将介绍 Python 中的一些常见 EDA 技术与工具,以及如何使用这些工具进行数据分析。
EDA 中的常用工具
pandas
pandas 是 Python 中常用的数据处理库,支持对数据进行读取、处理、清洗、转换、合并等操作,拥有强大的数据分析和处理能力。
matplotlib
matplotlib 是 Python 中常见的绘图库,支持绘制条形图、折线图、散点图、饼图等多种类型的图形,能够可视化数据分析的结果,为数据分析提供直观的展示。
seaborn
seaborn 是建立在 matplotlib 之上的 Python 数据可视化库,拥有更加美观的绘图样式和更加丰富的统计图表功能,能够帮助我们更加方便、高效地进行探索性数据分析。
EDA 的步骤
-
数据的读取和探索:首先对数据进行读取,查看数据的基本情况,了解数据类型、数据分布、缺失值等情况,分析数据的规模与质量。
-
数据的清理和处理:对数据进行清理和数据格式的统一处理,剔除无用的数据或异常数据。
-
探索数据的分布、变量之间的关系等内容:使用数据可视化的方法对数据进行探索,包括单变量分析(如条形图、饼图、密度图等)、多变量分析(如散点图、热力图等)以及数据的聚类、相关性等。
-
探索数据的异常、离群值:使用数据可视化、统计分析等方法来发现数据中的异常值,分析异常值可能存在的原因及其影响。
示例
示例一:探索性数据分析
我们拥有一份包含学生基本信息和成绩等部分信息的数据集,我们来进行探索性数据分析。
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 1. 数据的读取和探索
data = pd.read_csv("students.csv") # 读取数据
print(data.head()) # 查看数据的前几行
print(data.info()) # 查看数据信息,包括每列的非缺失值数量、数据类型等
print(data.describe()) # 描述性统计分析,包括数据的均值、标准差、最大最小值等
# 2. 数据的清理和处理
data = data.dropna() # 删除缺失值
data["gender"] = data["gender"].map({"male": "M", "female": "F"}) # 将性别转换为"M"和"F"两种格式
print(data.head())
# 3. 探索数据的分布、变量之间的关系等内容
sns.countplot(x="gender", data=data, palette="hls") # 绘制各性别学生数量的条形图
plt.show()
sns.boxplot(x="gender", y="score", data=data, palette="hls") # 绘制性别与成绩之间的箱线图
plt.show()
# 4. 探索数据的异常、离群值
q1 = data["score"].quantile(0.25)
q3 = data["score"].quantile(0.75)
iqr = q3 - q1
low = q1 - 1.5 * iqr # 计算异常点的下限
high = q3 + 1.5 * iqr # 计算异常点的上限
outliers = data[(data["score"] < low) | (data["score"] > high)] # 找出异常点
print(outliers)
示例二:通过数据可视化探索数据分布
我们现在的数据是一份波士顿房价数据集,为了更加可视化地探索数据分布,我们使用 seaborn 库进行可视化。
import pandas as pd
import seaborn as sns
# 1. 数据的读取和探索
boston = sns.load_dataset("tips") # 读取波士顿房价数据集
print(boston.head())
print(boston.info())
# 2. 探索数据的分布
sns.displot(boston, x="total_bill", kde=True) # 绘制房价数据的密度分析曲线
sns.displot(boston, x="total_bill", col="time", row="day", kde=True) # 绘制另一种分析曲线图
sns.boxplot(x="day", y="total_bill", data=boston, palette="hls") # 绘制箱线图
sns.violinplot(x="day", y="total_bill", data=boston, palette="hls") # 绘制小提琴图
sns.pairplot(boston) # 绘制多变量分析图
以上是 Python 数据分析教程探索性数据分析的完整攻略,这里只列举了两个示例,但实际上,EDA 还涉及到很多内容,比如缺失值的处理、数据的转换、特征选择等等。希望这些内容能为您在数据科学领域的探索提供启示。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 数据分析教程探索性数据分析 - Python技术站