Dans l'analyse des données, il est souvent nécessaire de regrouper les données et de compter les occurrences de valeurs ou de termes spécifiques. Ce type d'agrégation peut être facilement réalisé à l'aide des fonctions groupby et size dans Pandas.
Problème :
Supposons que vous ayez un DataFrame df avec les colonnes suivantes : id, groupe et terme. Le but est de compter le nombre d'occurrences de chaque terme unique pour chaque combinaison d'identifiant et de groupe, sans utiliser de boucles.
Solution :
Pour y parvenir, nous pouvez utiliser les étapes suivantes :
Le DataFrame résultant ressemblera à cette disposition :
Exemple de code :
df = pd.DataFrame([ (1, 1, 'term1'), (1, 2, 'term2'), (1, 1, 'term1'), (1, 1, 'term2'), (2, 2, 'term3'), (2, 3, 'term1'), (2, 2, 'term1') ], columns=['id', 'group', 'term']) result = df.groupby(['id', 'group', 'term']).size().unstack(fill_value=0) print(result)
Sortie :
term1 term2 term3 id group 1 1 2 1 2 2 2 1 3 1 0
Performance :
Pour les grands ensembles de données, le Les opérations de groupby et de taille peuvent être coûteuses en calcul. Le code suivant fournit des statistiques de synchronisation pour le regroupement et le comptage sur un DataFrame de 1 000 000 de lignes :
df = pd.DataFrame(dict(id=np.random.choice(100, 1000000), group=np.random.choice(20, 1000000), term=np.random.choice(10, 1000000))) %timeit df.groupby(['id', 'group', 'term']).size().unstack(fill_value=0)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!