python - 使用python如何计算四分位数/百分位数并给出创建新列进行分析的标准?

标签 python pandas numpy percentile

我有这样的数据:

Village     Workers
Takali      127
Dhokari     84
Aagar       10
Gardhani    122
Khanapur    65
Ambikanagar 45
Pi.Khand    120
Pangri      105
Dhagewadi   32
Sherewadi   34
Shindwad    42

我想创建一个新列,我必须在其中使用百分位数方法定义小、中和大级别。

例如:使用Excel命令=PERCENTILE(数据个数, 1/3) 将得到43,

和 =PERCENTILE(数据编号, 2/3) 将给出 98 。

所以,我想在 python 中使用 1/3 和 2/3 百分位数,

我想做这样的标准

如果 worker < = 1/3 百分位值将被定义为小

如果 worker <=2/3 百分位值将被定义为中等

IF 工作人员 > 2/3 百分位值将定义为“大”

我不知道如何在Python中执行此操作,我知道使用Excel。

enter image description here

enter image description here

你能帮我解决这个问题吗?

最佳答案

使用qcut ,只需要改变级别的顺序:

import pandas as pd 

df['level'] = pd.qcut(df['Workers'], 3, ['Small','Medium','Large'])
print (df)
        Village  Workers   level
0        Takali      127   Large
1       Dhokari       84  Medium
2         Aagar       10   Small
3      Gardhani      122   Large
4      Khanapur       65  Medium
5   Ambikanagar       45  Medium
6      Pi.Khand      120   Large
7        Pangri      105   Large
8     Dhagewadi       32   Small
9     Sherewadi       34   Small
10     Shindwad       42   Small

关于python - 使用python如何计算四分位数/百分位数并给出创建新列进行分析的标准?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44262938/

相关文章:

python - 如何将 numpy 数组分解成更小的 block /批处理,然后遍历它们

python - 无法让简单的 TFRecord 阅读器工作

python - Beautifulsoup 发现没有值的标签和属性?

python - 除了iloc(愿意使用Dask)之外,是否有更快的方法将列分配给数据框(有条件)

python - 根据其他列中的条件替换 pandas 列中的某些特定值

python - 使用泊松分布 "A"优于 "B"的可能性

javascript - AJAX DJango 从多个文件字段中获取文件

python - Keras 训练循环如何过滤损失值?

python - 按组在日期范围内高效的 p​​andas 滚动聚合 - Python 2.7 Windows - Pandas 0.19.2

python - (Python) 如何在不执行 A*B 的情况下获得对角线 (A*B)?