Maison >développement back-end >Tutoriel Python >Comment les Pandas peuvent-ils compter efficacement les termes dans des DataFrames groupés ?
Comptage des termes dans des DataFrames groupés : une solution Pandas
Cet article aborde le défi de compter les termes au sein des groupes et de résumer les résultats dans un DataFrame . Avec Pandas, cette tâche peut être résolue avec élégance sans recourir à un bouclage inefficace. Considérez le DataFrame suivant :
df = pd.DataFrame([ (1, 1, 'term1'), (1, 2, 'term2'), (1, 1, 'term1'), (1, 1, 'term2'), (2, 2, 'term3'), (2, 3, 'term1'), (2, 2, 'term1') ])
L'objectif est de regrouper par « id » et « group » et de compter les occurrences de chaque « terme ». Pour y parvenir, Pandas propose une solution concise :
df.groupby(['id', 'group', 'term']).size().unstack(fill_value=0)
Cette opération regroupe le DataFrame par colonnes 'id', 'group' et 'term', compte les occurrences de chaque combinaison unique et renvoie un DataFrame résumé avec des colonnes multi-index et une colonne de valeur unique nommée « taille » contenant les décomptes. La fonction « dépiler » remodèle le DataFrame dans un format large, avec une colonne pour chaque terme unique, comme indiqué ci-dessous :
id group term size 1 1 term1 3 1 term2 2 2 term3 1 2 2 term1 3
Analyse temporelle
Pour les plus grandes ensembles de données, comprendre les caractéristiques de performance de cette solution est crucial. Pour évaluer cela, considérons un DataFrame avec 1 million de lignes générées à l'aide du code suivant :
df = pd.DataFrame(dict(id=np.random.choice(100, 1000000), group=np.random.choice(20, 1000000), term=np.random.choice(10, 1000000)))
Le profilage de l'opération de regroupement et de comptage révèle qu'il peut gérer efficacement même de grands ensembles de données :
df.groupby(['id', 'group', 'term']).size().unstack(fill_value=0)
Cette performance est attribuée à la nature optimisée des mécanismes de regroupement et d'agrégation sous-jacents de Pandas, ce qui en fait un excellent outil pour travailler efficacement avec de grands ensembles de données.
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!