我有一个包含所有数值的 pandas DataFrame 或 Series。我想选择 DataFrame 或 Series 的某一列中前 99% 的值,从而删除后 1% 的最小值。我应该如何在Python 3中实现这一点?谢谢!
您可以使用np.percentile,但要小心。百分位数的定义不止一个,因此首先请确保它适合您的需求。
下面的示例过滤掉系列中最小的 20% 值。
import pandas as pd, numpy as np
s = pd.Series(np.random.rand(10))
# 0 0.477326
# 1 0.474181
# 2 0.438678
# 3 0.397124
# 4 0.777874
# 5 0.698927
# 6 0.244970
# 7 0.540653
# 8 0.658190
# 9 0.774246
# dtype: float64
t = s[s > np.percentile(s, 20)]
# 0 0.477326
# 1 0.474181
# 2 0.438678
# 4 0.777874
# 5 0.698927
# 7 0.540653
# 8 0.658190
# 9 0.774246
# dtype: float64
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1936 次 |
| 最近记录: |