Python 数据分析

17 Mar 2025 | 6 分钟阅读

数据分析可以帮助我们从数据中获取有用的信息,并为我们的查询提供解决方案。此外,基于观察到的模式,我们可以预测不同业务策略的成果。

理解数据分析的基础

数据

我们在分析过程中处理的数据类型大多是 csv(逗号分隔值)格式。通常,csv 文件中的第一行代表标题。

可用包

Python 包中提供了各种库,可以轻松实现,而无需编写冗长的代码。

一些包的例子包括-

  1. 科学计算库,如 NumPy、Pandas & SciPy。
  2. 可视化库,如 Matplotlib 和 seaborn。
  3. 算法库,如 scikit-learn 和 statsmodels。

导入和导出数据集

在导入数据集时,我们必须注意两个基本事项-

  1. 格式 - 指文件的编码方式。常见格式的例子是 .csv、.xlsx、.json 等。
  2. 文件路径 - 文件路径指的是文件存储的位置。它可以是任何驱动器上的文件,也可以是某些在线源。

这可以通过以下方式完成-

示例 -

如果数据集不包含标题,我们可以按以下方式指定-

要查看数据集的前五行和最后五行,我们可以分别使用 df.head() 和 df.tail()。

让我们看看如何导出数据,如果我们有一个 .csv 格式的文件,那么,

数据整理

数据整理是一个将数据从原始格式转换为可用于分析的格式的过程。

让我们看看这部分包含什么-

如何处理缺失值?

缺失值 - 由于信息不可用,一些条目留空。它通常用 NaN、? 或 0 表示。

让我们讨论一下如何处理它们-

最佳选择是用平均值替换数值变量,用众数替换分类变量。

有时可能会出现这种情况,当我们需要删除缺失值时,可以使用-

如果我们想删除一行,我们需要将 axis 指定为 0。如果我们想删除一列,我们需要将 axis 指定为 1。

此外,如果我们希望这些更改直接发生在数据集中,我们将指定另一个参数inplace = True。

现在让我们看看如何替换值-

语法是 -

在这里,我们将创建一个变量并将属性(我们要替换其值)的平均值存储在其中。

如何进行数据格式化?

指将数据转换为可理解格式的过程。例如 - 更改变量名使其易于理解。

数据归一化

数据集中存在的特征具有可能导致有偏预测的值。因此,我们必须将它们带入可比较的范围。

为此,我们可以在属性上使用以下技术-

  1. 简单特征缩放 Xn=Xold/Xmax
  2. 最小-最大方法 Xn=Xold-Xmin/Xmax-Xmin
  3. Z-score Xn=Xold-µ/Ꝺ
    µ - 平均值
    Ꝺ - 标准差

如何将分类变量转换为数值变量?

在此之下,我们进行一个称为“独热编码”的过程,假设有一个属性包含分类值。我们将从可能性中创建虚拟变量,并根据它们在属性中的出现情况将它们赋值为 0 或 1。

要将分类变量转换为 0 或 1 的虚拟变量,我们将使用

Python 中的分箱

指将数值变量转换为分类变量的过程。

假设我们从数据集中选取了一个属性“price”。我们可以根据范围将其数据分为三类,然后用 low-price、mid-price 和 high price 等名称表示。

我们可以使用linspace()方法获得范围。

探索性数据分析

统计量

我们可以使用describe()方法查找数据集的统计摘要。它可以作为df.describe()使用。分类变量可以使用 value_counts()方法进行汇总。

使用 GroupBy

pandas 的 groupby() 方法可以应用于分类变量。它根据不同的类别对子集进行分组。它可以涉及单个或多个变量。

让我们来看一个有助于我们理解如何在 Python 中使用它的例子。

相关性

相关性衡量两个变量相互依赖的程度。

一种直观的方法是检查两个变量之间存在何种相关性。我们可以绘制图表并解释一个属性值的增长如何影响另一个属性。

在统计学方面,我们可以使用皮尔逊相关性获得相关性。它为我们提供了相关系数和 P 值。

让我们看一下标准-

相关系数关系
1. 接近 +1强正相关
2. 接近 -1强负相关
3. 接近 0不存在关系
P 值确定性
P 值 < 0.001
P 值 < 0.05适中
P 值 < 0.1
P 值 > 0.1不能

我们可以使用 scipy stat 包在我们的代码中使用它。

假设我们想计算 attribute1 和 attribute2 这两个属性之间的相关性-

进一步检查所有变量之间的相关性,我们可以创建一个热力图。

两个分类变量之间的关系

可以使用卡方方法计算两个分类变量之间的关系。

如何开发模型?

首先,让我们理解什么是模型?

模型可以指帮助我们预测结果的方程。

  • 线性回归和多元线性回归

线性回归 - 顾名思义,它只涉及一个自变量来进行预测。

多元回归 - 它涉及多个自变量来进行预测。

简单线性回归的方程可以表示为-

y=b0x+b1

此处,

y - 因变量

x - 自变量

b0 - 斜率

b1 - 截距

在 Python 中实现线性回归-

使用可视化评估我们的模型

创建图表是一个好习惯,因为它们显示了相关性的强度以及关系的方向是正向还是负向。

让我们看一下可以帮助我们评估模型的不同图表-

1. 使用回归图

2. 使用残差图

样本内评估

在这里,我们将讨论如何对模型进行数值评估,有两种方法-

1. 均方误差 (MSE)

此方法计算实际值与预测值之间的差值,将其平方,然后计算它们的平均值。

我们可以使用以下方法在 Python 中实现它-

2. R 平方

R 平方也称为决定系数。它显示了数据与拟合回归线的接近程度。可以使用score()方法在 Python 中使用它。

决策

总之,在评估模型时,我们需要注意以下几点-

  1. 使用可视化
  2. 使用数值评估方法。

如何评估模型?

评估我们的模型是一个重要的组成部分,因为它告诉我们数据在多大程度上完美地拟合模型。现在,我们将讨论如何使用训练数据来预测结果。

关键思想是将我们的数据集分成训练集和测试集。训练数据集用于构建我们的模型,测试数据集用于评估我们模型的性能。

可以使用以下方法在 Python 中实现它-

过拟合和欠拟合

过拟合 - 当模型过于简单以至于拟合数据时。

欠拟合 - 当模型轻易地调整噪声因子而不是函数时。

岭回归

当我们在处理十次多项式变量时使用此方法。在这里,我们引入了一个称为 alpha 的因子。让我们看看如何用 Python 实现它。


下一个主题Python seek() 方法