Python数据清洗

该博客介绍了一种数据清洗流程,包括使用3σ原则和箱形图识别异常值,然后将异常值置空并采用向上、向下或指定值填充空值的方法。通过读写CSV文件实现数据处理,并提供了相关功能函数的详细实现。最后,展示了不同处理方法的运行结果。

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

应用目标

  • 手动准备异常数据集(使用新手学习最广泛地数据集iris.csv,自行添加异常值和空值)

  • 识别异常数据(方法一:3σ原则识别异常值 方法二:箱形图)

  • 填补缺失值/空白值(向上填补、向下填补、指定值填补)

  • 数据清洗结果保存至文件

思路分析

main函数

  • 为了更好地封装功能函数,采用统一的接口,功能函数返回相同的数据结构。

  • 相较于以往,可插入性更加完善,比如方便添加若干种异常值处理方法或数据填充方法。

  • main函数完成的是框架工作,提供统一接口,方便后期扩充功能函数。

def main():
    # 从文件读取数据
    path = "iris_mistake.csv"
    or_data = read_data(path)

    # 异常值处理 两种选择方式 返回异常值所在位置
    outlier_method = input('输入异常值处理方法(three_sigma/box_plot):')
    if outlier_method == "three_sigma":
        outlier = three_sigma(or_data)
    elif outlier_method == "box_plot":
        outlier = box_plot(or_data)

    # 将异常值置空
    nan_data = update_data_to_null(or_data, outlier)

    # 空值填补处理 三种选择方式 返回填补后的dataFrame
    fill_method = input('输入空值填补方法(fillup/filldown/value):')
    fill_data = fillna(nan_data,fill_method)

    # 写入文件
    new_path = "iris_" + outlier_method + "_" + fill_method + ".csv"
    write_csv(new_path,fill_data)

if __name__=="__main__":
    main()

异常值处理功能函数

3σ原则
  • 以列为单位进行循环处理(计算均值方差 -> 找到上下界 -> 返回异常值的index元组)
  • 不同的数据集,需要手动调整pass的列(iris数据集的最后一列Species 不需要参与计算)
def three_sigma(or_data):
    column_id = 0                   
    outlier = []                        # 存放异常值index
    for column_head in or_data.columns: # 按列遍历
        if column_head == 'Species':    # 最后一列不进行处理
            pass
        else:
            print(column_head)          # 计算总和、均值、方差
            column_data_sum =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值