Python pandas数据清洗实战:从杂乱到规整

前天 8266阅读

在数据分析的世界里,数据清洗是至关重要的一步。Python中的pandas库为我们提供了强大的工具来处理各种数据清洗任务。本文将通过实战案例,带你领略pandas数据清洗的魅力。

一、数据加载

首先,我们需要加载数据。假设我们有一个包含销售数据的CSV文件,名为sales_data.csv

import pandas as pd

# 加载数据
data = pd.read_csv('sales_data.csv')

二、查看数据概览

在清洗数据之前,先了解数据的基本情况。

# 查看前5行数据
print(data.head())

# 查看数据信息(列名、数据类型等)
print(data.info())

# 查看统计摘要
print(data.describe())

三、处理缺失值

缺失值在数据中很常见,pandas提供了多种方法处理。

1. 检查缺失值

# 查看每列缺失值数量
print(data.isnull().sum())

2. 删除缺失值

如果缺失值较少,可以选择删除。

# 删除包含缺失值的行
cleaned_data = data.dropna()

3. 填充缺失值

如果缺失值较多,填充是更好的选择。比如用均值填充数值型列。

# 用均值填充数值型列的缺失值
data['quantity'] = data['quantity'].fillna(data['quantity'].mean())

四、处理重复值

重复数据会影响分析结果,需要去除。

# 检查重复行
print(data.duplicated().sum())

# 删除重复行
data = data.drop_duplicates()

五、数据类型转换

确保数据类型正确很重要。

# 将日期列转换为日期类型
data['date'] = pd.to_datetime(data['date'])

六、异常值处理

异常值可能是错误数据或特殊情况,需要甄别处理。

1. 用箱线图查看数值分布

import matplotlib.pyplot as plt

# 绘制箱线图
data.boxplot(column='price')
plt.show()

2. 基于统计方法处理异常值(示例:用均值±3倍标准差筛选)

mean_price = data['price'].mean()
std_price = data['price'].std()
data = data[(data['price'] >= mean_price - 3 * std_price) & (data['price'] <= mean_price + 3 * std_price)]

七、数据格式统一

比如将字符串列的文本统一格式。

# 将产品名称列转换为大写
data['product_name'] = data['product_name'].str.upper()

八、总结与建议

通过以上步骤,我们完成了一次较为全面的数据清洗实战。在实际项目中,要根据数据特点灵活运用这些方法。建议在清洗前先备份原始数据,以便对比和回溯。同时,对于复杂的业务数据,可能需要结合业务逻辑进行更细致的清洗。数据清洗是一个不断迭代的过程,随着对数据理解的深入,可能会发现新的问题并进一步优化清洗策略。只有高质量的清洗后的数据,才能为后续的数据分析和建模奠定坚实的基础。

文章版权声明:除非注明,否则均为Dark零点博客原创文章,转载或复制请以超链接形式并注明出处。

目录[+]