Tenho um dataframe onde quero contar um valor específico que ocorre em uma linha. Este código abaixo dá a resposta certa e agora quero adicionar uma nova coluna ao meu dataframe
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
Quando atribuo uma nova coluna ao quadro, esta é a saída:
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
Mas não é isso que eu quero, quero dividir a quantidade de Aantal_skills para quanto é essencial e opcional para a primeira linha, deve ser 8 essenciais e 8 opcionais
Você está perto, precisa agrupar por ambas as colunas:
Se precisar de 2 novas colunas, use
crosstab
comDataFrame.join
: