我有这样的数据:
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。
所以,我想用1/3& python中的2/3百分位,
我想做像
这样的标准如果工人< = 1/3百分位数值将定义为小
如果工人< = 2/3百分位值将定义为中等
IF Workers> 2/3 Percentile值将定义为Large
我不知道如何在python中这样做,我知道使用excel。
你能帮我解决一下如何在python中解决这个问题吗?
答案 0 :(得分:1)
使用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