我有 pandas
Dataframe,我想消除列的极值。
例如:我有一个名为 df
的 pandas
数据框,其中有一个名为 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/