Considérez une situation dans laquelle vous avez un DataFrame avec plusieurs colonnes et vous souhaitez regrouper les lignes par deux colonnes. Après le regroupement, vous devrez peut-être trier davantage les résultats agrégés au sein de chaque groupe, par exemple en triant par colonne de nombre par ordre décroissant. Voici comment y parvenir :
Pour regrouper les données sur plusieurs colonnes, puis les trier au sein des groupes, vous pouvez combiner les fonctions groupby() et sort_values(). Par exemple, supposons que vous ayez un DataFrame avec le nombre de colonnes, le travail et la source.
<code class="python">import pandas as pd df = pd.DataFrame({'count': [2, 4, 6, 3, 7, 5, 3, 2, 4, 1], 'job': ['sales','sales','sales','sales','sales', 'market','market','market','market','market'], 'source': ['A','B','C','D','E','A','B','C','D','E']})</code>
Pour obtenir le nombre global pour chaque combinaison de travail et de source, vous pouvez faire :
<code class="python">df.groupby(['job','source']).agg({'count':sum})</code>
Ensuite, pour trier la colonne de nombre par ordre décroissant au sein de chacun des groupes et prendre uniquement les trois premières lignes, vous pouvez procéder comme suit :
<code class="python">result = df.sort_values(['job','count'],ascending=False).groupby('job').head(3)</code>
Cela renverra un DataFrame avec les trois premières lignes pour chaque groupe de tâches, trié par colonne de nombre par ordre décroissant. Le DataFrame résultant pourrait ressembler à ceci :
<code class="python">print(result) count job source 4 7 sales E 2 6 sales C 1 4 sales B 5 5 market A 8 4 market D 6 3 market B</code>
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!