python - 过滤掉python pandas中两个百分位数之间的数据

标签 python pandas numpy

我有 pandas Dataframe,我想消除列的极值。 例如:我有一个名为 dfpandas 数据框,其中有一个名为 percentage 的列。我想根据以下条件过滤掉数据框,根据百分比列中的值消除前 10 个百分位和后 10 个百分位。

我想将其过滤到第 10 个到第 90 个百分位数。

我想到了以下,

df[(df.percentage > np.percentile(df.percentage, 10 )) & (df.percentage < np.percentile(df.percentage, 90 ))]

这是正确的方法吗?或者有人可以推荐更快的方法吗?

最佳答案

尝试 .quantile

p_10 = df.percentage.quantile(0.1)
p_90 = df.percentage.quantile(0.9)
df[df.percentage.gt(p_10) & df.percentage.lt(p_90)]

关于python - 过滤掉python pandas中两个百分位数之间的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55890075/

相关文章:

python - 如何通过调整权重来优化 PIL 逊相关系数?

python - 导入禁用图形的 Pandas

python - pyyaml 将mac地址转为数字

python - 如何在保持形状和索引的同时(快速)获得 DataFrame 的第一个非 Nan 每日值?

Python 根据另一个数据帧中的匹配行将部分行移动到上一行

python - 召回率和精确率后的分类准确率

python - PIL打开tif图像只有一个 channel

python - bin 一列并对 (2,N) 数组的另一列求和

python - 使用 python 和 Beautiful Soup 迭代网站页面

Python,在列中拆分多个字符串