数据清洗与预处理实战

本教程将使用 Python 的 Pandas 库演示数据清洗与预处理的常见操作,并展示如何使用各种方法处理缺失值、重复值、异常值以及进行数据规范化和标准化。

1. 读取数据

首先,我们需要导入 Pandas 库并读取数据。

import pandas as pd

# 读取数据
data = pd.read_excel('E:/pythonProject5/深度学习/新建 XLS 工作表.xls')

2. 检查数据

读取数据后,我们可以使用 print(data.columns) 打印数据的列名,并检查数据是否存在缺失值、重复值或异常值。

# 打印数据的列名
print(data.columns)

3. 处理缺失值

我们可以使用 dropna() 方法删除包含缺失值的行。

# 删除缺失值
data.dropna(inplace=True)

4. 处理重复值

使用 drop_duplicates() 方法删除重复的行。

# 删除重复值
data.drop_duplicates(inplace=True)

5. 处理异常值

根据数据的具体情况,我们可以使用不同的方法处理异常值。例如,对于股票数据中的‘涨跌幅’列,我们可以将其限制在某个范围内。

# 处理异常值
data = data[(data['涨跌幅'] >= -10) & (data['涨跌幅'] <= 10)]

6. 数据规范化

数据规范化是指将数据缩放到某个特定范围内。常见的规范化方法有最小-最大规范化和 Z-score 规范化。

6.1 最小-最大规范化

最小-最大规范化将数据缩放到 0 到 1 之间。

# 最小-最大规范化
def min_max_scale(data):
    return (data - data.min()) / (data.max() - data.min())

# 对数据进行归一化
data['涨跌幅'] = min_max_scale(data['涨跌幅'])

6.2 Z-score 规范化

Z-score 规范化将数据缩放到均值为 0,标准差为 1 的范围内。

# Z-score 规范化
def z_score_scale(data):
    return (data - data.mean()) / data.std()

# 对数据进行归一化
data['涨跌幅'] = z_score_scale(data['涨跌幅'])

7. 数据标准化

数据标准化是指将数据变换到某个特定的分布。常见的标准化方法有 Box-Cox 变换和 Yeo-Johnson 变换。

7.1 Box-Cox 变换

Box-Cox 变换是一种将数据变换到正态分布的方法。

from scipy.stats import boxcox

# Box-Cox变换
data['涨跌幅'], _ = boxcox(data['涨跌幅'])

# 对数据进行标准化
data['涨跌幅'] = z_score_scale(data['涨跌幅'])

7.2 Yeo-Johnson 变换

Yeo-Johnson 变换是一种更加通用的变换方法,可以处理包含负值的数据。

from scipy.stats import yeojohnson

# Yeo-Johnson变换
data['涨跌幅'], _ = yeojohnson(data['涨跌幅'])

# 对数据进行标准化
data['涨跌幅'] = z_score_scale(data['涨跌幅'])

总结

本文介绍了数据清洗与预处理的常见方法,并通过 Python 的 Pandas 库进行了实战演示。在实际应用中,我们可以根据数据的具体情况选择合适的处理方法。

请注意,本文仅介绍了数据清洗与预处理的基本方法,实际应用中可能需要根据具体情况进行更复杂的处理。

注意: 在运行代码之前,请确保您已经安装了 Pandas 和 SciPy 库。

pip install pandas scipy
Python 数据清洗与预处理:Pandas 实战教程

原文地址: https://www.cveoy.top/t/topic/oYIC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录