L'utilisation de la méthode agg avec un dictionnaire est-elle appropriée pour effectuer un value_counts sur plusieurs colonnes?

Bonjour,
je travaille sur un dataset où j’ai en ligne des individus et en colonne la variable ‹ ville › où ils résident (Paris, Lyon, Marseille) et 4 autres variables (V1, V2, V3, V4) binaires (oui, non).
Je voudrais savoir s’il serait possible de faire un value_counts pour les 4 variables binaires dans une seule ligne de code en utilisant les fonctions groupby et apply.

une solution possible serait :
df.groupby(‹ ville ›).agg({'V1 ': ‹ value_counts ›, ‹ V2 › : ‹ value_counts ›, ‹ V3 › : ‹ value_counts ›, ‹ V4 › : ‹ value_counts ›})

existe-t-il une solution plus élégante et rapide ?

Merci d’avance

Bonjour Francesco,

La solution que vous proposez me paraît très bien. Effectivement pour éviter d’écrire à plusieurs reprises value_counts on peut ajouter une boucle for comme suit (mais cela ne fait pas une grande différence) :
df.groupby("ville").agg({i:'value_counts' for i in ["V1","V2","V3","V4"]})
S’il y a beaucoup de colonnes dans votre liste vous pouvez également utiliser df.columns en restreignant aux colonnes dont vous avez besoin, par exemple df.columns[1:6].

En espérant avoir répondu à votre question,

Lara

2 Likes

Merci beaucoup Lara!!