[PYTHON] Comment extraire les conditions (acquérir tous les éléments du Groupe qui remplissent les conditions) pour Groupe par Groupe

Je souhaite extraire les conditions d'un groupe qui a été groupé.

Je vais vous expliquer comment obtenir tous les éléments du groupe qui satisfont les conditions du groupe par groupe en Python.

Par exemple, si vous disposez des données suivantes et que le score le plus élevé est de 80 ou plus, vous souhaitez acquérir toutes les données de cette personne.

import pandas as pd
import numpy as np

df = pd.DataFrame({"name":["Yamada","Yamada","Yamada","Suzuki","Suzuki","Hayashi"],
                   "score":[60,70,80,60,70,80]})
print(df)

#       name  score
# 0   Yamada     60
# 1   Yamada     70
# 2   Yamada     80
# 3   Suzuki     60
# 4   Suzuki     70
# 5  Hayashi     80

(Corrigé le 19/12/05) Dans un tel cas, vous pouvez écrire sur une seule ligne en utilisant `` groupby.filter```.

new_df = df.groupby('name').filter(lambda group: group['score'].max() >= 80)
print(new_df)

#       name  score
# 0   Yamada     60
# 1   Yamada     70
# 2   Yamada     80
# 5  Hayashi     80

Le contenu de `` filtre () '' est des expressions lambda liées à la condition.

À propos, avant que Qiita ne m'enseigne, j'avais l'habitude d'extraire les conditions comme suit. Vous pouvez obtenir une clé qui remplit les conditions pour chaque groupe disposant de groupby, puis joindre le bloc de données d'origine à cette clé sur la gauche. Plus précisément, le code est le suivant.

group_df = df.groupby('name').max().reset_index()
key = group_df[group_df['score'] >= 80]['name']
new_df = pd.merge(key, df, on = 'name', how = 'left')
print(new_df)

#       name  score
# 0  Hayashi     80
# 1   Yamada     60
# 2   Yamada     70
# 3   Yamada     80

J'ai été impressionné de pouvoir écrire une série de flux de jointure externe gauche sur une ligne afin de récupérer la clé qui satisfait la condition et de restaurer les informations de score qui ont été supprimées par l'opération groupby.

Recommended Posts

Comment extraire les conditions (acquérir tous les éléments du Groupe qui remplissent les conditions) pour Groupe par Groupe
[Python] Comment utiliser l'instruction for. Une méthode d'extraction en spécifiant une plage ou des conditions.
Trier les éléments d'un tableau en spécifiant des conditions
Comment créer une propriété de relations qui peuvent être prefetch_related par des conditions spécifiques
Comment tester les attributs ajoutés par add_request_method de pyramid
Comment modifier le niveau de journalisation d'Azure SDK pour Python
Comment utiliser l'apprentissage automatique pour le travail? 01_ Comprendre l'objectif de l'apprentissage automatique
Comment créer un wrapper qui préserve la signature de la fonction à envelopper
Pandas du débutant, par le débutant, pour le débutant [Python]
Comment mentionner un groupe d'utilisateurs avec une notification de mou, comment vérifier l'ID d'un groupe d'utilisateurs
Afficher tout le corps de l'e-mail du groupe de messagerie recherché par Gmail et réduit
Comment lire toutes les classes contenues dans * .py dans le répertoire spécifié par Python
[python] Comment trier par le Nth Mth élément d'un tableau multidimensionnel
Comment trouver le coefficient de la courbe approximative passant par les sommets en Python
Utilisez numpy pour supprimer des colonnes ou des lignes contenant des éléments de certaines conditions
Comment faire un Raspberry Pi qui parle les tweets d'un utilisateur spécifié
[Introduction à Python] Comment obtenir l'index des données avec l'instruction for
Comment calculer la volatilité d'une marque
[python] Comment afficher les éléments de la liste côte à côte
[python] Vérifier les éléments de la liste tous, tous
Comment utiliser MkDocs pour la première fois
Comment effacer les caractères générés par Python
Comment obtenir des éléments de type dictionnaire de Python 2.7
Comment trouver la corrélation pour les variables catégorielles
Comment éviter l'étiquette de coupure du graphique créé par le module système de tracé à l'aide de matplotlib
[Ruby] Comment remplacer uniquement une partie de la chaîne de caractères correspondant à l'expression régulière?
Convertir les informations financières de toutes les sociétés cotées des 5 dernières années en fichier CSV
Comment connaître le numéro de port du service xinetd
Comment obtenir le nombre de chiffres en Python
Comment résoudre la fonction récursive qui a résolu abc115-D
La décision de scikit-learn Comment visualiser un modèle en bois
Comment savoir quelle version de Java Maven utilise
[Blender] Comment définir dynamiquement les sélections EnumProperty
[Python] Affiche toutes les combinaisons d'éléments de la liste
[Python] Résumé de la façon de spécifier la couleur de la figure
Comment frapper le document de Magic Function (Line Magic)
Comment accéder à la variable globale du module importé
Regrouper par éléments consécutifs d'une liste en Python
Comparez comment écrire le traitement des listes par langue
[Selenium] Comment spécifier le chemin relatif de chromedriver?
Extraire uniquement les éléments qui répondent à des conditions spécifiques en Python
Comment supprimer le préfixe du nom de base de données utilisé par pytest-django
Comment vérifier si le contenu du dictionnaire est le même en Python par valeur de hachage
Comment résoudre le problème que le contenu vidéo ne peut pas être lu sur Firefox pour Linux
Comment tracer beaucoup de légendes en changeant la couleur du graphique en continu avec matplotlib
Comment trouver la somme / somme cumulée pour chaque groupe à l'aide de DataFrame dans Spark [version Python]
Comment définir des variables pouvant être utilisées dans toute l'application Django ~ Utile pour les modèles, etc. ~