按特定值进行计数和分组

问题描述 投票:0回答:1

我有一个数据框,我想计算连续出现的特定值。 下面的代码给出了正确的答案,现在我想向我的数据框添加一个新列

occur = df.groupby(['Code_5elaag','Essentieel_Optioneel']).size()
occur

**Code_5elaag  Essentieel_Optioneel**
1101         essentieel               8
             optioneel                8
1102         essentieel               8
             optioneel               51
1103         essentieel               8
                                     ..
96231        optioneel                6
96232        essentieel               1
             optioneel                2
96290        essentieel               9
             optioneel               17

当我为框架分配一个新列时,这是输出:

uniq['ess'] = df.groupby(['Code_5elaag'])['Essentieel_Optioneel'].transform(np.size)

    Code_5elaag Omschrijving_5elaag Soort_Skill Aantal_skills   ess
0   1101    Officieren landmacht    taken   16  16              15
16  1102    Officieren luchtmacht   taken   59  59              59
75  1103    Officieren marechaussee taken   16  16              16

但这不是我想要的,我想将Aantal_skills的数量除以essentieel和optioneel的数量,第一行应该是8essentieel8可选

python pandas dataframe group-by data-science
1个回答
0
投票

您很接近,需要按两列分组:

uniq['ess'] = df.groupby(['Code_5elaag','Essentieel_Optioneel'])['Essentieel_Optioneel'].transform('size')
© www.soinside.com 2019 - 2024. All rights reserved.