Python 数据清洗与预处理:Pandas 实战教程
数据清洗与预处理实战
本教程将使用 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
原文地址: https://www.cveoy.top/t/topic/oYIC 著作权归作者所有。请勿转载和采集!