Maison  >  Article  >  développement back-end  >  Comment regrouper DataFrame par deux colonnes, compter les occurrences et trouver le nombre maximum ?

Comment regrouper DataFrame par deux colonnes, compter les occurrences et trouver le nombre maximum ?

DDD
DDDoriginal
2024-10-23 12:10:02528parcourir

How to Groupby DataFrame by Two Columns, Count Occurrences, and Find Maximum Count?

Grouper DataFrame par deux colonnes et récupérer les décomptes

Dans ce tutoriel, nous montrerons comment compter les occurrences de combinaisons de deux colonnes dans un Pandas DataFrame et identifier le nombre maximum pour chaque valeur unique dans l'une des colonnes groupées.

Énoncé du problème

Considérez le Pandas DataFrame df suivant :

<code class="python">df = pd.DataFrame([
    [1.1, 1.1, 1.1, 2.6, 2.5, 3.4,2.6,2.6,3.4,3.4,2.6,1.1,1.1,3.3], 
    list('AAABBBBABCBDDD'), 
    [1.1, 1.7, 2.5, 2.6, 3.3, 3.8,4.0,4.2,4.3,4.5,4.6,4.7,4.7,4.8], 
    ['x/y/z','x/y','x/y/z/n','x/u','x','x/u/v','x/y/z','x','x/u/v/b','-','x/y','x/y/z','x','x/u/v/w'],
    ['1','3','3','2','4','2','5','3','6','3','5','1','1','1']
]).T
df.columns = ['col1','col2','col3','col4','col5']</code>

Compter les occurrences

Pour obtenir le nombre de chaque combinaison unique de col5 et col2 dans df, nous pouvons utiliser la fonction groupby suivie de la méthode size :

<code class="python">df.groupby(['col5', 'col2']).size()</code>

Le résultat sera :

col5  col2
1     A       1
      D       3
2     B       2
etc...

Trouver le nombre maximum pour chaque valeur col2

Pour déterminer le nombre maximum pour chaque valeur col2, nous pouvons utiliser la méthode size de la fonction groupby pour calculer la taille des groupes, puis utiliser le groupby au premier niveau pour trouver le maximum pour chaque valeur col2 unique :

<code class="python">df.groupby(['col5', 'col2']).size().groupby(level=1).max()</code>

Cela produira le résultat :

col2
A       3
B       2
C       1
D       3
dtype: int64

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!

Déclaration:
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