我有一个数据框,我想在其中计算一行中出现的特定值。下面的代码给出了正确的答案,现在我想向数据框中添加一个新列
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的数量划分为第一行的基本和可选部分,应该是8 个基本部分和8 个可选部分
您已经接近了,需要按两列分组:
如果需要 2 个新列,请
crosstab
使用DataFrame.join
: