Je cet objectif appelé dataframe:Python/Pandas - Performance - Calcul% de l'incidence d'une valeur dans une colonne
target:
group
170 64.22-1-00
72 64.22-1-00
121 35.12-3-00
99 64.22-1-00
19 35.12-3-00
Je veux créer une nouvelle colonne appelée group_incidence qui est le rapport de la fréquence que le groupe apparaît dans la base de données. Il est calculé comme suit:
[total number of times that that 'group' appeared in the group column]/len(target.index)
Il ressemblerait à ceci:
group group_incidence
170 64.22-1-00 0.6
72 64.22-1-00 0.6
121 35.12-3-00 0.4
99 64.22-1-00 0.6
19 35.12-3-00 0.4
j'ai pu le faire à travers une boucle for
, cependant, puisque c'est un grand dataframe, il prend trop de temps. Je crois que si je pouvais passer la boucle for, j'aurais des gains de performance considérables.
Existe-t-il un moyen d'effectuer la même opération sans passer par la boucle for?
Aurait 'len (df) 'outside' applique' peut-être? 'df.groupby ('groupe') ['group']. transform ('count')/len (df)' – Zero
@JohnGalt, très bon point, merci! – MaxU