我有一个数据框,我想计算连续出现的特定值。 下面的代码给出了正确的答案,现在我想向我的数据框添加一个新列
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的数量,第一行应该是8essentieel和8可选
您很接近,需要按两列分组:
uniq['ess'] = df.groupby(['Code_5elaag','Essentieel_Optioneel'])['Essentieel_Optioneel'].transform('size')