gpt4 book ai didi

python - 如何使用带有 IQR 的 pandas 过滤器

转载 作者:IT老高 更新时间:2023-10-28 20:25:25 30 4
gpt4 key购买 nike

是否有内置方法可以按 IQR(即 Q1-1.5IQR 和 Q3+1.5IQR 之间的值)对列进行过滤?另外,建议使用 pandas 中任何其他可能的广义过滤。

最佳答案

据我所知,最简洁的符号似乎是由 query 方法带来的。

# Some test data
np.random.seed(33454)
df = (
# A standard distribution
pd.DataFrame({'nb': np.random.randint(0, 100, 20)})
# Adding some outliers
.append(pd.DataFrame({'nb': np.random.randint(100, 200, 2)}))
# Reseting the index
.reset_index(drop=True)
)

# Computing IQR
Q1 = df['nb'].quantile(0.25)
Q3 = df['nb'].quantile(0.75)
IQR = Q3 - Q1

# Filtering Values between Q1-1.5IQR and Q3+1.5IQR
filtered = df.query('(@Q1 - 1.5 * @IQR) <= nb <= (@Q3 + 1.5 * @IQR)')

然后我们可以绘制结果来检查差异。我们观察到左侧箱线图中的异常值(183 处的十字)不再出现​​在过滤后的系列中。

# Ploting the result to check the difference
df.join(filtered, rsuffix='_filtered').boxplot()

Comparison before and after filterinf

自从这个答案我写了 post关于这个主题,您可以找到更多信息。

关于python - 如何使用带有 IQR 的 pandas 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34782063/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com