Python pandas数据清洗实战:从杂乱到规整
在数据分析的世界里,数据清洗是至关重要的一步。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零点博客原创文章,转载或复制请以超链接形式并注明出处。

