Maison > développement back-end > Tutoriel Python > Comment compter efficacement les occurrences de termes au sein des groupes dans un DataFrame Pandas ?

Comment compter efficacement les occurrences de termes au sein des groupes dans un DataFrame Pandas ?

Linda Hamilton
Libérer: 2024-12-12 17:11:14
original
626 Les gens l'ont consulté

How to Efficiently Count Term Occurrences within Groups in a Pandas DataFrame?

Regroupement par nombre de termes dans une trame de données Pandas

Problème :

Étant donné une trame de données avec les colonnes suivantes : id, group et term. L'objectif est de déterminer le nombre d'occurrences de chaque terme dans chaque combinaison unique d'identifiant et de groupe.

Solution :

Pour éviter d'utiliser des boucles, utilisez groupby et fonctions de taille dans Pandas :

df.groupby(['id', 'group', 'term']).size().unstack(fill_value=0)
Copier après la connexion

La fonction groupby regroupe le dataframe par les colonnes spécifiées (id, groupe et terme), tandis que la fonction size compte les occurrences de chaque combinaison. La fonction de dépilage produit un tableau plus attrayant visuellement avec les décomptes disposés dans une matrice.

Le résultat est un tableau avec des colonnes multi-index où les deux premiers niveaux représentent la combinaison de l'identifiant et du groupe, et le troisième niveau correspond au terme. Chaque cellule du tableau indique le nombre de fois qu'un terme particulier apparaît pour l'identifiant et le groupe correspondants.

Temps :

Pour les grands ensembles de données (par exemple, 1 000 000 de lignes) , les performances sont excellentes :

df = pd.DataFrame(dict(id=np.random.choice(100, 1000000),
                       group=np.random.choice(20, 1000000),
                       term=np.random.choice(10, 1000000)))
Copier après la connexion

En utilisant l'approche susmentionnée, le temps écoulé est d'environ 1 seconde.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal