Python数据分析 - 缩尾处理

本文介绍了在会计学数据分析中常用的缩尾处理方法,通过Python的开源库SciPy进行实现,包括如何设置百分位数限制以及示例代码。
摘要由CSDN通过智能技术生成

1 摘要

缩尾处理是在会计学数据分析中经常会用到的一种处理方式。著名的商业化统计分析软件如stat、matlab、spss等都提供了缩尾处理函数,但这些软件都是收费的。本文介绍如何使用开源的、免费的Python库SciPy提供的缩尾处理函数对数据进行缩尾处理。

2 什么是缩尾处理?

将一组数据中超出指定百分数值的数据使用该指定百分位数保留的临近数值替换,称为缩尾处理。这么定义比较难以理解,下面举个例子说明。 如下一组数据

[9,10,7,2,1,3,5,8,4,6]

对其做下20%的缩尾处理结果为

[9,10,7,3,3,3,5,8,4,6]

其下20%百分位值为2和1,均使用3替换。同理,对其做上30%的缩尾处理结果为

[7,7,7,2,1,3,5,7,4,6]

详细的缩尾处理解释可以参考什么是winsorize处理

3 使用SciPy进行缩尾处理

SciPy是基于python生态,用于数学、科学、工程等领域计算的开源软件包。可以处理插值、积分、优化、图像处理、常微分方程数值解的求解、信号处理等问题。点击进入SciPy主页。

SciPy由许多执行特定任务的子模块组成,其中scipy.stat模块提供了缩尾处理方法。 使用SciPy进行数据分析需要安装Python及SciPy相关的软件包,由于不同系统环境安装方法略有不同,这里对安装方法不做详细说明,可自行百度。

下面是使用SciPy进行缩尾处理的执行代码,代码中进行了注释说明。

    >>> import numpy as np
    >>> from scipy.stats.mstats import winsorize
    >>> a = np.array([10,4,8,2,1,3,5,7,6,9])
    >>> winsorize(a, limits=[0.1,0.2]) # 同时做下10%和上20%的处理
    masked_array(data=[8, 4, 8, 2, 2, 3, 5, 7, 6, 8],
                mask=False,
            fill_value=999999)
    >>> winsorize(a, limits=[0.2,0.1])# 同时做下20%,上10%的处理
    masked_array(data=[9, 4, 8, 3, 3, 3, 5, 7, 6, 9],
                mask=False,
            fill_value=999999)
    >>> winsorize(a, limits=[0.2,0]) #仅做下20%处理
    masked_array(data=[10,  4,  8,  3,  3,  3,  5,  7,  6,  9],
                mask=False,
            fill_value=999999)

参考资料

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值