· EDA(探索性数据分析)。
· 数据及其类型。
· 使用分类数据。
· Countplot 使用 seaborn。
· 分布图。
· 直方图
· 饼图
· 箱形图
探索性数据分析:
EDA 或探索性数据分析是任何数据分析项目中的关键步骤。它涉及检查和理解数据以发现见解、模式和关系。
在 EDA 中,单变量分析是涉及一次分析单个变量的初始步骤。它有助于了解数据的分布、识别离群值和异常值,并检测潜在的错误或缺失值。
在深入研究单变量分析的类型之前,让我们先对数据进行一个总体概述。数据大致可以分为两类:
数据及其类型
什么是数据和数据类型?
数据可以定义为特定数量的系统记录。它是该数量的不同值一起表示在一个集合中。它是用于特定目的(例如调查或分析)的事实和数据的集合。当以有组织的形式排列时,可以称为信息。
数值数据: 本质上是定量的,可以进一步分为两类:
A。离散数据: 它由整数组成并且是可数的。例如,一个家庭的宠物数量。
b. 连续数据:它被测量并且可以取特定范围内的任何值。例如,一个人的身高。
分类数据: 本质上是定性的,可以进一步分为两类:
A。标称数据: 它由没有内在顺序的类别组成。例如,性别、颜色或汽车类型。
b. 序数数据: 它由具有特定顺序的类别组成。例如,教育资格或等级量表。
单变量分析
使用数据集中的单个列。
可以对数值数据和分类数据执行单变量分析。对于数值数据,我们可以检查均值、中位数和众数等集中趋势的度量,以及方差和标准差等分布的度量。直方图、箱形图和密度图也可用于可视化数据分布。
对于分类数据,我们可以检查每个类别的频率,计算每个类别中观察值的百分比,并绘制条形图以可视化数据分布。
总之,单变量分析是 EDA 中的一个重要步骤,有助于一次理解和探索单个变量。
Countplot 及其参数:
计数图是一种条形图,它使用条形图显示每个分类 bin 中的观测值计数。它通常用于可视化数据集中分类变量的分布。
以下是如何使用 Python 中的 seaborn 库创建计数图的示例:
将 seaborn 导入为 sns
加载样本数据集
tips = sns.load_dataset(“tips”)
创建计数图
sns.countplot(x=”day”, data=tips)
在此示例中,我们正在创建“tips”数据集中“day”列的计数图。生成的图将使用条形图显示每个类别(“周四”、“周五”、“周六”、“周日”)中的观察数量。
sns中可以使用的一些重要参数。countplot() 函数是:
x: 要绘制在 x 轴上的分类变量的名称
数据: 用于绘图的数据集的名称
hue: 另一个分类变量的名称,用于按颜色对条形进行分组
调色板: 用于条形图的调色板
order:在 x 轴上显示类别的顺序
色调顺序: 显示色调变量类别的顺序
饼形图:
饼图是一种圆形统计图形,用于表示数字比例。在饼图中,圆圈代表数据的总值,饼图的每一片代表该值的一部分。饼图通常用于显示分类数据集中每个类别的百分比。
以下是如何使用 Python 的 matplotlib 库创建饼图的示例:
将 matplotlib.pyplot 导入为 plt
# 样本数据
labels = ['苹果', '橙子', '香蕉', '芒果']
尺寸 = [30, 25, 20, 25]
创建饼图
图,ax = plt.subplots()
斧头。饼图(大小,标签=标签,autopct='%1.1f%%',startangle=90)
# 添加标题
ax.set_title('水果比例')
显示情节
plt.show()
此代码将创建一个饼图,标签为“Apples”、“Oranges”、“Bananas”和“Mangoes”,大小分别为 30、25、20 和 25。autopct 参数将百分比标签格式化为一位小数,startangle 参数设置第一个切片的起始角度。
以下是可与 pie() 函数一起使用的一些常用参数:
labels:表示每个切片标签的字符串列表。
sizes:代表每个切片大小的数值列表。
autopct:用于格式化百分比标签的字符串或函数。例如,'%1.1f%%' 会将标签格式化为小数点后一位,并带有百分号。
startangle:表示第一个切片起始角度的数值,以度为单位。
explode:一个数值列表,表示每个切片应该从中心分离多远。例如,[0, 0.1, 0, 0] 会将第二个切片与中心隔开 10% 的半径。
shadow:一个布尔值,指示是否在饼图下方绘制阴影。
颜色:用于填充每个切片的颜色列表。例如,['red', 'blue', 'green', 'yellow'] 将用红色填充第一个切片,用蓝色填充第二个切片,依此类推。
饼图对于可视化类别数量相对较少的类别数据很有用。但是,如果切片太多或切片的大小非常相似,则饼图可能会变得难以阅读。在这些情况下,其他类型的图表可能更合适。
直方图:
用于神经数据以了解数据的分布。它将数字数据分成箱(范围)
直方图是数值数据分布的图形表示。它由一组矩形组成,这些矩形的面积与落入特定范围的变量的计数(或频率)成正比。直方图通常用于可视化连续变量的分布。
在 Python 中,我们可以使用 Matplotlib 库中的 hist 函数来创建直方图。这是一个例子:
将 matplotlib.pyplot 导入为 plt
将熊猫导入为 pd
创建样本数据集
data = pd.DataFrame({'年龄': [25, 26, 27, 27, 28, 29, 30, 30, 31, 32, 32, 33, 34, 34, 34, 35, 36, 36, 37, 38]})
创建年龄变量的直方图
plt.hist(data['Age'], bins=5, color='green')
添加标题和标签
plt.title('年龄分布')
plt.xlabel('年龄')
plt.ylabel('频率')
显示情节
plt.show()
在此示例中,我们创建了一个年龄样本数据集,并使用 hist 函数创建了年龄变量的直方图。我们已指定 bin 的数量为 5,条形的颜色为绿色。我们还使用 title、xlabel 和 ylabel 函数向图中添加了标题和标签。最后,我们使用 show 函数显示了绘图。
hist 函数有几个参数可以用来自定义直方图:
bins:用于直方图的 bins 数
范围:指定要包含在直方图中的值范围的元组
density:如果为True,直方图将被归一化以形成概率密度
累积:如果为真,将创建累积直方图
颜色:直方图中条形的颜色
分布图:
它是概率密度函数,用于告诉直方图等数据分布,但它实际上告诉你一个数字的概率。
distplots 是 Python 中 Seaborn 库中的一个函数,用于绘制观察值的单变量分布。它以一个数组或一系列数据作为输入,并在其顶部绘制直方图和核密度估计 (KDE) 图。
这是使用 distplot 的示例
将 seaborn 导入为 sns
将 matplotlib.pyplot 导入为 plt
sns.distplot(df['Age'].dropna(), kde=False, bins=30)
plt.show():
可以与 distplot 一起使用的其他参数包括:
hist(默认值:True):如果为 True,则绘制数据的直方图。
kde(默认值:True):如果为 True,则绘制数据的核密度估计值。
地毯(默认值:False):如果为真,则在数据中的每个观察点绘制一个小的垂直刻度。
fit(默认值:None):如果提供,则将参数分布拟合到数据并绘制估计的密度曲线。
颜色:设置绘图的颜色。
label:设置绘图的标签。
箱形图:
箱形图是基于五个数字汇总的数值数据分布的图形表示:最小值、第一四分位数 (Q1)、中位数、第三四分位数 (Q3) 和最大值。它也被称为盒须图。
该框表示中间 50% 的数据,框的底部和顶部分别是第一四分位数 (Q1) 和第三四分位数 (Q3)。方框内的线代表中位数。胡须从方框延伸到四分位数间距 (IQR) 的 1.5 倍以内的最小和最大观察值。胡须外的任何数据点都被视为异常值,并绘制为单独的点。
要使用 Python 的 matplotlib 库创建箱线图,我们可以使用 boxplot() 函数。以下参数可用于自定义绘图:
x(必需):要绘制的数据。
vert:如果为 True(默认),则框是垂直的。如果为 False,则框是水平的。
patch_artist:如果为 True,框将使用填充颜色绘制。
labels:x 轴的刻度标签列表。
showfliers:如果为 True,异常值将被绘制为单个点。
下面是创建箱形图的示例代码:
将 matplotlib.pyplot 导入为 plt
要绘制的数据
数据 = [10、20、30、40、50、60、70、80、90、100]
创建箱线图
plt.boxplot(数据)
添加标题和标签
plt.title(“箱线图”)
plt.xlabel(“数据”)
plt.ylabel(“值”)
显示情节
plt.show()
这将创建一个具有默认设置的简单箱线图。
五数总结包括以下内容:
最小值:数据集中最小的观测值。
Q1:第一个四分位数或第 25 个百分位数,这是 25% 的数据低于该值的值。
中位数:数据集中的中间值,也称为第 50 个百分位数。
Q3:第三个四分位数或第 75 个百分位数,这是低于 75% 数据的值。
最大值:数据集中最大的观测值。
五数汇总可用于快速汇总数据分布并识别任何异常值。