Maison > développement back-end > Tutoriel Python > Comment obtenir des lignes avec le nombre maximum dans des DataFrames Pandas groupés ?

Comment obtenir des lignes avec le nombre maximum dans des DataFrames Pandas groupés ?

DDD
Libérer: 2024-12-20 07:14:12
original
762 Les gens l'ont consulté

How to Get Rows with the Maximum Count in Grouped Pandas DataFrames?

Obtenir des lignes avec un nombre maximum dans des DataFrames Pandas groupés

Problème :

Récupérer toutes les lignes d'un DataFrame Pandas qui ont la valeur maximale pour la colonne "count", regroupée par "Sp" et "Mt" colonnes.

Exemples :

Exemple 1 :

DataFrame d'entrée :

Sp Mt Value count
MM1 S1 a 3
MM1 S1 n 2
MM1 S3 cb 5
MM2 S3 mk 8
MM2 S4 bg 10
MM2 S4 dgd 1
MM4 S2 rd 2
MM4 S2 cb 2
MM4 S2 uyi 7

Attendu Sortie :

Sp Mt Value count
MM1 S1 a 3
MM1 S3 cb 5
MM2 S3 mk 8
MM2 S4 bg 10
MM4 S2 uyi 7

Exemple 2 :

DataFrame d'entrée :

Sp Mt Value count
MM2 S4 bg 10
MM2 S4 dgd 1
MM4 S2 rd 2
MM4 S2 cb 8
MM4 S2 uyi 8

Sortie attendue :

Sp Mt Value count
MM2 S4 bg 10
MM4 S2 cb 8
MM4 S2 uyi 8

Solution :

  1. Obtenez le nombre maximum par Groupe :
import pandas as pd

df.groupby(['Sp', 'Mt'])['count'].max()
Copier après la connexion

Ceci renvoie une série avec le nombre maximum pour chaque combinaison unique de « Sp » et « Mt ».

  1. Créer un masque booléen :
idx = df.groupby(['Sp', 'Mt'])['count'].transform(max) == df['count']
Copier après la connexion

Cela crée un masque booléen où True indique les lignes avec le nombre maximum au sein de leur groupe.

  1. Filtrer le DataFrame :
df[idx]
Copier après la connexion

Cela filtre le DataFrame pour inclure uniquement les lignes où le masque idx est True, ce qui donne le résultat souhaité.

Remarque : Plusieurs lignes avec un maximum égal le décompte sera renvoyé s'ils se produisent dans le même groupe.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal