python的新手,我正在学习。我主要使用pandas数据帧。
我有一项消费者调查,我想根据收入百分比将其分组。所以排在第10,第10-20等等。我想创建一个单独的列,描述每个代理所在的%ile。
任何帮助表示感谢。
答案 0 :(得分:0)
df = pd.DataFrame(dict(
Agent=pd.DataFrame(np.random.choice(list(ascii_letters), (100, 5))).sum(1),
Salary=np.random.randint(50000, 150000, (100))
))
df['Salary Decile'] = pd.qcut(df.Salary, 10, labels=list(map('D{}'.format, range(10))))
df
Agent Salary Salary Decile
0 TLuIY 110708 D5
1 ZaxpV 111411 D5
2 TGaTY 116893 D6
3 SitLP 133517 D8
4 hsFWf 54198 D0
5 LLiUV 146248 D9
6 npFCo 113458 D6
7 JfeMa 56040 D0
8 jqkOA 91098 D3
9 BEZKe 144488 D9
10 QyoUG 72309 D2
11 azYaB 83156 D2
12 qpXxz 57682 D0
13 cEvNV 64950 D1
14 QRalI 122120 D7
15 SifWk 103399 D5
16 qBMOy 130008 D8
17 agTRX 54760 D0
18 ZCFyB 97051 D4
19 bBhzc 69204 D1
20 bhgXT 96809 D4
21 pFWNQ 126710 D7
22 EXLyx 122152 D7
23 HaSdg 137614 D9
24 uGtKH 59155 D1
25 Dkbqq 84346 D2
26 nsxMp 101822 D5
27 lppEj 114105 D6
28 nQQez 78923 D2
29 UOzZa 113714 D6
.. ... ... ...
70 wCQDZ 102920 D5
71 nYEfT 140140 D9
72 FDXdG 99796 D4
73 CPCHY 111255 D5
74 SxXfK 91946 D3
75 BGwnC 135886 D8
76 gNLkt 115078 D6
77 VsNhX 77128 D2
78 oJZFB 117714 D6
79 ERqEy 123873 D7
80 SWNPP 86705 D3
81 LOXQU 147105 D9
82 dEfhH 76160 D2
83 OlDLD 61954 D1
84 chzAB 132647 D8
85 cOdBf 111554 D5
86 ekqMa 84482 D2
87 VYELR 92139 D3
88 iTNsN 51796 D0
89 QTOtk 111048 D5
90 mzuDF 100903 D4
91 fSJjS 97345 D4
92 zjMUt 127831 D7
93 NRXjs 83754 D2
94 YxnIu 90778 D3
95 FiIbR 123566 D7
96 CpUsf 97854 D4
97 SCren 130119 D8
98 oBLpq 60390 D1
99 WgELS 122030 D7
[100 rows x 3 columns]