如何使用Python实现变量的缩尾

type
status
date
slug
summary
tags
category
icon
password
网址
作者
标签
文章链接
发布时间
来源
在实证论文中,缩尾(Winsorization) 是一种常用的极值处理方法,用来将上下极端值拉回到指定分位点,从而降低异常值对分析结果的影响。
如果你想对 data['A'] 进行上下 1% 缩尾,可以使用 Pandas 结合 quantile 来实现。
下面详细演示几种方法。

方法 1:使用 Pandas clip()(最简洁推荐)

解释:

  • quantile(0.01) → 计算第 1% 分位数。
  • quantile(0.99) → 计算第 99% 分位数。
  • clip(lower, upper)
    • 小于 lower 的值替换为 lower
    • 大于 upper 的值替换为 upper
    • 介于两者之间的值保持不变。

方法 2:使用 np.where(更显式的写法)

如果你想显式控制上下界替换,可以使用 numpy.where
这段代码逻辑上与 clip() 完全一致,但适合需要明确表达逻辑的场景。

方法 3:直接覆盖原列

如果你不想生成新列,而是直接在原列上进行缩尾

查看缩尾效果

可以比较缩尾前后最大值和最小值,验证是否生效:
Prev
自然对数的转换方法
Next
解读固定效应
Loading...
Article List
Practice makes perfect
文献集锦
如何理论创新?
管理学理论集锦
Python实际应用
聚类标准误与固定效应
巫师3:狂猎
Stata应用技巧
Python知识与技巧
双重差分法(DID)
创新文献阅读与摘要
计量经济学
Python绘图相关