pandas数据清洗的通用流程
在数据分析中,数据清洗是极为关键的一步,能提升数据质量,为后续分析奠定良好基础。
·
在数据分析中,数据清洗是极为关键的一步,能提升数据质量,为后续分析奠定良好基础。以下是Pandas进行数据清洗的通用流程:
1. 数据加载
在开始清洗前,需要把数据加载到 Pandas 的 DataFrame
或 Series
中。不同格式的数据有不同的加载方法。
import pandas as pd
# 加载 CSV 文件
csv_data = pd.read_csv('data.csv')
# 加载 Excel 文件
excel_data = pd.read_excel('data.xlsx')
2. 数据概览
对数据有整体的认识,查看数据的基本信息、行数、列数、数据类型以及缺失值情况等。
# 查看数据基本信息
print('数据基本信息:')
csv_data.info()
# 查看数据集行数和列数
rows, columns = csv_data.shape
if rows < 1000:
# 短表数据(行数少于1000)查看全量数据信息
print('数据全部内容信息:')
print(csv_data.to_csv(sep='\t', na_rep='nan'))
else:
# 长表数据查看数据前几行信息
print('数据前几行内容信息:')
print(csv_data.head().to_csv(sep='\t', na_rep='nan'))
3. 处理缺失值
数据中可能存在缺失值,需要根据具体情况选择合适的处理方法,如删除、填充等。
# 删除包含缺失值的行
data_without_nan = csv_data.dropna()
# 使用均值填充数值列的缺失值
numeric_columns = csv_data.select_dtypes(include='number').columns
csv_data[numeric_columns] = csv_data[numeric_columns].fillna(csv_data[numeric_columns].mean())
# 使用众数填充非数值列的缺失值
categorical_columns = csv_data.select_dtypes(include='object').columns
csv_data[categorical_columns] = csv_data[categorical_columns].fillna(csv_data[categorical_columns].mode().iloc[0])
4. 处理重复值
重复数据会对分析结果产生影响,需要找出并删除重复数据。
# 查找重复行
duplicated_rows = csv_data[csv_data.duplicated()]
# 删除重复行
csv_data = csv_data.drop_duplicates()
5. 处理异常值
异常值可能是数据录入错误或特殊情况导致的,需要根据业务逻辑和统计方法进行处理。
# 基于 Z-score 方法检测数值列的异常值
from scipy import stats
import numpy as np
z_scores = np.abs(stats.zscore(csv_data[numeric_columns]))
filtered_entries = (z_scores < 3).all(axis=1)
csv_data = csv_data[filtered_entries]
6. 数据类型转换
确保数据列的数据类型符合分析需求,必要时进行数据类型转换。
# 将日期列转换为日期类型
csv_data['date_column'] = pd.to_datetime(csv_data['date_column'])
# 将数值列转换为整数类型
csv_data['numeric_column'] = csv_data['numeric_column'].astype(int)
7. 处理文本数据
如果数据中包含文本列,可能需要进行文本清洗,如去除空格、转换大小写等。
# 去除字符串列的前后空格
csv_data['text_column'] = csv_data['text_column'].str.strip()
# 将字符串列转换为小写
csv_data['text_column'] = csv_data['text_column'].str.lower()
8. 数据验证与保存
在完成数据清洗后,再次验证数据的质量,确保数据清洗达到预期效果,然后将清洗后的数据保存到文件中。
# 再次查看数据基本信息
print('清洗后数据基本信息:')
csv_data.info()
# 保存清洗后的数据
csv_data.to_csv('cleaned_data.csv', index=False)
这些步骤构成了使用 Pandas 进行数据清洗的通用流程,可根据实际数据情况和分析需求进行调整。

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)