数据预处理----数据清洗

本文详细介绍了如何使用Pandas库进行数据清洗,包括删除重复数据、填充缺失值、处理缺失值、数据类型转换、筛选数据、异常值检测以及时间序列数据处理,展示了数据预处理过程中的关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据清洗是数据预处理过程中的一个重要步骤,它涉及到识别和纠正(或去除)数据集中的错误或不一致。以下是一些使用 pandas 进行数据清洗的核心代码示例:
1、删除重复数据:

import pandas as pd

# 创建一个包含重复数据的DataFrame
df = pd.DataFrame({
    'A': [1, 2, 2, 3],
    'B': ['a', 'b', 'b', 'c']
})

# 删除重复数据
df_unique = df.drop_duplicates()

2、填充缺失值:

# 填充缺失值为0
df_filled = df.fillna(0)

# 使用前一个值填充缺失值
df_filled = df.fillna(method='ffill')

# 使用后一个值填充缺失值
df_filled = df.fillna(method='bfill')

# 使用特定的值填充缺失值
df_filled = df.fillna(value=5)

3、删除含有缺失值的行:

# 删除含有缺失值的行
df_dropped = df.dropna()

# 指定删除含有多少个及以上缺失值的行
df_dropped = df.dropna(thresh=2)

4、数据类型转换:

# 将列转换为字符串类型
df['column'] = df['column'].astype('str')

# 将列转换为整数类型
df['column'] = df['column'].astype('int')

# 将列转换为浮点数类型
df['column'] = df['column'].astype('float')

5、过滤和选择数据:

# 选择某一列
df_column = df['column']

# 选择满足条件的行
df_filtered = df[df['column'] > 0]

# 使用布尔索引进行复杂过滤
df_complex = df[(df['column1'] > 0) & (df['column2'] == 'value')]

6、异常值处理:

# 计算 z-score
z_scores = scipy.stats.zscore(df['column'])

# 去除 z-score 绝对值大于 3 的异常值
df_cleaned = df[(z_scores > 3).any(axis=1)]

# 使用 IQR 去除异常值
Q1 = df['column'].quantile(0.25)
Q3 = df['column'].quantile(0.75)
IQR = Q3 - Q1
df_cleaned = df[~((df['column'] < (Q1 - 1.5 * IQR)) |(df['column'] > (Q3 + 1.5 * IQR)))]

7、重采样和插值:

# 对时间序列数据进行重采样
df_resampled = df.resample('M').mean()

# 对缺失值进行线性插值
df_interpolated = df.interpolate(method='linear')

请注意,这些代码示例仅用于说明 pandas 在数据清洗方面的核心功能。在实际应用中,数据清洗的过程可能需要更复杂的逻辑和多种方法的组合,以确保数据的质量和准确性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

茉莉清茶LG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值