我有一個包含“年齡”列和“專業資格”列的資料框,如下所示:
年齡 | 專業資格 |
---|---|
45 | 勞動者 |
49 | 勞動者 |
29 | 勞動者 |
61 | 勞動者 |
45 | 勞動者 |
37 | 勞動者 |
17 | 上班族 |
56 | 勞動者 |
47 | 上班族 |
我想將年齡分組為( ,17)、(17,29)、(30,40)、(40,50)、(50, ),并且將這些年齡分組后,我將創建一個頻率表,指示每個年齡段出現什么職業資格的次數較多。
例子:
年齡 | 專業資格 |
---|---|
(,17) | 上班族 |
(17,29) | 勞動者 |
(30,40) | 勞動者 |
(40,50) | 勞動者 |
等等,等等,等等 40-50歲(不包括40歲)的人大多是勞動者
所有解決方案將不勝感激。
uj5u.com熱心網友回復:
通過選擇第一個元素通過自定義函式cut
與聚合一起使用:GroupBy.agg
Series.mode
bins = [0,17,29,40,50,70,100]
f = lambda x: x.mode().iat[0]
df1 = (df.groupby(pd.cut(df['ages'], bins=bins))['professional qualification']
.agg(f)
.reset_index())
print (df1)
ages professional qualification
0 (0, 17] office worker
1 (17, 29] labourer
2 (29, 40] labourer
3 (40, 50] labourer
4 (50, 70] labourer
5 (70, 100] None
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/505762.html
下一篇:計算每組值的百分比?