目录
前言
在现实生活中收集到的数据往往存在这数据不完整(有缺失值)、数据不一致、数据异常等情况,如果用这种异常数据进行建模分析,那么可能会影响建模的执行效率,甚至可能会造成分析结果出现偏差。如何对数据进行预处理,提高数据质量,是数据分析工作中常见的问题。本文章将给大家介绍数据合并、数据清洗、数据标准化和数据变化这四种预处理操作。
思维导图:
一、数据加载与初步探索
1.1数据加载
使用Pandas的read_
系列函数(如read_csv
、read_excel
等)可以轻松加载各种格式的数据集。加载出想要进行数据预处理的表格数据。
import pandas as pd
# 加载CSV文件
data = pd.read_csv('data.csv')
# 查看前5行数据
print(data.head())
# 查看数据集的形状(行数和列数)
print(data.shape)
输出结果如下
1.2初步探索
使用info()
方法查看数据集的基本信息,如数据类型、缺失值等。
print(data.info())
输出结果如下
二、数据清洗
清理加载出来的异常值数据,以下分三种情况
第一种情况:当数据中有出现缺失值的情况,可以使用2.1来解决
2.1处理缺失值
-
使用
dropna()
方法删除包含缺失值的行或列。 -
使用
fillna()
方法填充缺失值,可以指定填充值或使用列的平均值、中位数等。
# 删除所有包含缺失值的行
data_clean = data.dropna()
# 使用列的平均值填充缺失值
data_clean['column_name'].fillna(data['column_name'].mean(), inplace=True)
输出结果如下
第二种情况:当数据中出现重复值时可以使用2.2
2.2处理重复值
使用duplicated()
和drop_duplicates()
方法识别和处理重复值。
# 查找重复行
duplicates = data[data.duplicated()]
# 删除重复行
data_unique = data.drop_duplicates()
输出结果如下
第三种情况:当数据中出现异常值(不同于同列或同行的数据类型)时,可以使用2.3
2.3处理异常值
使用IQR(四分位距)等方法识别异常值,并视情况选择删除或替换。
# 计算IQR并识别异常值
Q1 = data['column_name'].quantile(0.25)
Q3 = data['column_name'].quantile(0.75)
IQR = Q3 - Q1
lower_limit = Q1 - 1.5 * IQR
upper_limit = Q3 + 1.5 * IQR
outliers = data[(data['column_name'] < lower_limit) | (data['column_name'] > upper_limit)]
# 处理异常值(如删除&