购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.1 数据清洗与处理

数据清洗与处理是数据预处理过程的一部分,它涉及对原始数据进行修复、填充、删除和转换,以使其适合用于训练和测试机器学习模型。

3.1.1 数据质量检查与缺失值处理

数据质量检查与缺失值处理是数据预处理的关键步骤,它们对模型的性能和结果有重要影响。根据数据的特点和任务的需求,选择合适的方法来处理数据质量问题和缺失值是至关重要的。

假设有一个CSV文件stock_data.csv,包含一小部分苹果(AAPL)、谷歌(GOOGL)、特斯拉(TSLA)和英伟达(NVDA)的股票数据,并包含缺失值,具体内容如下所示。

在这个CSV文件中,数据中存在缺失值。例如,某些行的“开盘价”列为空,此时可以使用Python语言来处理数据。

实例3-1:处理股票数据中的缺失值(源码路径:daima/3/chu.py)

实例文件chu.py的具体实现代码如下所示。

在上述代码中,首先读取了名为“stock_data.csv”的CSV文件,并执行了数据质量检查和缺失值处理。我们可以根据需要自定义文件路径和列名称,以适应我们的数据集。然后,将处理后的数据保存到新的CSV文件“cleaned_stock_data.csv”和“filled_stock_data.csv”中,这两个文件分别包含了删除缺失值和填充缺失值后的数据。最后绘制了箱线图,以比较处理前和处理后的收盘价数据的分布情况。

执行代码后会输出以下内容,并绘制了如图3-1所示的两个箱线图,一个是原始数据的箱线图,另一个是处理数据(删除或填充缺失值后)后的箱线图。

图3-1 箱线图

3.1.2 异常值检测与处理

异常值检测与处理与数据质量检查与缺失值处理在金融行业中是不同的概念,尽管它们都涉及数据的异常情况,但有不同的目的和侧重点。

(1)数据质量检查与缺失值处理

目的:数据质量检查的主要目的是确保数据的准确性、完整性和一致性。这包括检查数据类型、重复值和缺失值等,以便数据分析和建模能够顺利进行。

侧重点:数据质量检查侧重于数据的基本质量和整洁度。它通常涉及识别和纠正数据集中的问题,以确保数据可用于分析和决策。

例子:数据质量检查包括确保日期字段包含正确的日期格式,数值字段不包含非数字字符,以及去除重复记录等。

(2)异常值检测与处理

目的:异常值检测的主要目的是识别数据中的不寻常或异常情况。在金融领域,异常值可能表示潜在的风险或机会,因此需要仔细处理。

侧重点:异常值检测侧重于识别数据中的离群值,这些离群值可能是由于错误、欺诈、市场波动或其他因素引起的。处理异常值可能涉及是否忽略、调整或调查这些异常情况。

例子:在金融领域,异常值检测包括检测异常的交易模式,检查股票价格的极端波动或检测信用卡交易中的欺诈行为。

虽然数据质量检查和异常值检测都有助于维护数据的健康状态,但它们的方法和侧重点不同。在金融行业中,处理异常值通常涉及更复杂的技术和领域专业知识,因为异常值可能会对金融市场、投资和风险管理产生重大影响。因此,金融机构通常会投入大量的资源来开发和使用高级的异常值检测技术。

实例3-2:识别和处理股票数据中的异常值(源码路径:daima/3/boe.py)

实例文件boe.py的具体实现代码如下所示。

假设在文件app.csv中保存了某股票的交易数据,其中包含了极端价格波动的数据。

在上述文件app.csv中,股票的收盘价出现了极端波动,从160.00上升到250.00,然后从250.00下降到190.00,最后又从190.00上升到215.00。这种价格波动可以被认为是异常值,需要进行检测和处理,以使数据更符合正常的股票价格波动情况。接下来,编写文件boe.py来识别和处理文件app.csv中的异常值。

在上述代码中,首先计算了股票收盘价的均值和标准差,然后定义了异常值的阈值。接下来,标识了文件app.csv中超过阈值的异常值,并将这些异常值替换为均值。最后,绘制了箱线图,以比较处理前后的收盘价数据的分布情况。执行代码后的输出如下。

注意

异常值的检测和处理方法可以根据具体情况进行调整和改进。这只是一个简单的示例,用于演示如何处理含有极端价格波动的股票数据。在实际应用中,可能需要更复杂的技术和策略来处理异常值。

3.1.3 数据重复性处理

在金融行业,数据重复性处理是非常重要的,因为它直接关系到金融决策和风险管理的准确性和可靠性。数据重复性处理有助于确保数据的准确性,提高决策质量,降低风险,满足法规要求和提高数据分析的可信度。金融机构通常会投入大量的资源来确保其数据质量,以支持其核心业务和风险管理。

实例3-3:删除股票数据中的重复值(源码路径:daima/3/chong.py)

假设在文件data.csv中保存了一些股票交易数据,其中包含一些重复记录的数据。

在文件data.csv中,日期、股票代码、开盘价、收盘价、最高价、最低价和交易量是数据的不同列,其中在注释中已经标记了重复记录。这些重复记录可以通过数据重复性处理方法来识别和处理。接下来编写文件chong.py来删除上述CSV文件中的重复数据。

在上述代码中,使用Python中的csv模块遍历了原始文件data.csv,并使用一个集合来追踪已经出现过的行。如果发现一行不在集合中,就将其写入新的CSV文件中。这样可以删除重复的行,将删除重复数据后的数据保存到文件cleaned_data.csv中。最后打开文件cleaned_data.csv,逐行读取并输出文件内容,这样就可以看到已删除重复数据的新CSV文件的内容。执行代码后会输出如下结果。 cDyxRLiIpvzdO021flB7iihBo9hvLjVo5LtkT/G3JqC6tuGuV8wMc6W1QjI3QGsz

点击中间区域
呼出菜单
上一章
目录
下一章
×