Pandas Groupby s'applique

Pandas Groupby s'applique
La bibliothèque Python la plus populaire pour la manipulation et l'analyse des données est les pandas. L'analyse des données nécessite fréquemment que les données soient divisées en groupes pour exécuter différentes opérations sur chaque groupe. La stratégie de combinaison divisée est utilisée par la fonction Groupby dans Pandas. Cela implique de séparer un objet, d'utiliser des fonctions sur l'objet et de combiner les résultats. Dans cet article pour manipuler les données groupées de diverses manières, la fonction Groupby sera utilisée. L'une des méthodes couramment utilisées utilisées pour le prétraitement des données est le appliquer() méthode. L'application d'une fonction à chaque élément d'une série de pandas, et à chaque colonne ou ligne de Dataframe en pandas, se fait plus simple. La méthode applicable () en pandas sera couverte dans cet article avec la fonction groupby ().

À chaud pour utiliser la fonction appliquer () sur les données groupées

Nous pouvons utiliser la fonction applique () pour diverses fonctions aux lignes et colonnes de DataFrame. Les objets fournis à la fonction sont des objets de séries dont la valeur d'index est soit l'index des lignes de dataframe (axe = 0) ou le nombre de colonnes dans le dataframe (axe = 1). L'utilisation de cette méthode renvoie le dataframe ou la série le long de l'axe spécifié. Si nous voulons modifier une certaine colonne sans modifier d'autres colonnes, nous pouvons utiliser cette fonction. Le Dataframe.appliquer() La syntaxe de la méthode est donnée ci-dessous.

Syntaxe: Trame de données.Appliquer (func, axe = 0, brut = false, result_type = aucun, args = (), ** kwds)

:

func: Représente la fonction qui sera appliquée à chaque ligne ou colonne

axe: Spécifie la direction le long de laquelle la méthode sera appliquée: 0 ou «index» applique la fonction à toutes les colonnes, tandis que 1 ou «colonnes» applique la fonction à toutes les lignes.

result_type: Offre les options «réduiser», «développer», «diffuser» et «aucun». Le «aucun» est la valeur par défaut.

Ceux-ci fonctionnent uniquement avec axe = 1 (colonnes):

développer: Les colonnes seront créées à partir des résultats qui ressemblent aux listes.

réduire: Contrairement à «s'étendre», cela renvoie une série chaque fois qu'elle est faisable plutôt que d'expansion des résultats qui ressemblent à des listes.

diffuser: Les colonnes et l'indice d'origine seront conservés et il diffusera les résultats à DataFrame dans sa forme d'origine.

Voyons également la syntaxe de la fonction GroupBy () pour regrouper les données:

Syntaxe: Trame de données.groupBy (par = non, axe = 0, niveau = aucun, as_index = true, tri = true, group_keys = true, comprese = nodefault.no_default, observé = false, dropna = true)

par: fonction, liste des étiquettes, cartographie ou étiquette. Pour le groupe, il est utilisé pour créer les groupes. Les groupes seront déterminés à partir des valeurs du dict ou de la série si l'un de ceux-ci est donné. Il utilise les valeurs telles quelles pour générer les groupes si un ndarray ou une liste avec une longueur égale à l'axe choisi est donné. Pour se regrouper par les colonnes DataFrame en soi, une liste d'étiquettes ou une seule étiquette peut être donnée / adoptée. Gardez à l'esprit que chaque tuple est considéré comme une clé (célibataire).

axe: 'index' ou 0, 'colonnes' ou 1, 0 par défaut. Se séparer les colonnes ou les lignes.

niveau: nom du niveau, séquence de tel ou int. None par défaut. Les données de groupe sont basées sur un niveau ou des niveaux spécifiques si l'indice de l'axe est un multiindex.

as_index: bool, c'est vrai par défaut. Renvoie un objet avec les noms de groupe comme index de la sortie agrégée. Applicable uniquement à l'entrée de dataframe. En effet, la sortie groupée «de style SQL» est «comme index = false».

trier: bool, c'est vrai par défaut. Clés de groupe dans l'ordre. En désactivant cela, vos performances s'amélioreront.

group_keys: bool, c'est vrai par défaut. Ajoutez des clés de groupe à l'index lorsque l'appel s'applique pour identifier les pièces.

presser: bool, c'est faux par défaut. Si possible, réduisez la dimensionnalité du type de retour; Sinon, il renvoie un type cohérent.

observé: bool, c'est faux par défaut. Ce n'est que si un ou plusieurs des groupes sont catégoriques que cela s'appliquera. Affichez uniquement la valeur de sortie pour les groupes catégoriels si vous êtes vrai et affichez toutes les valeurs de sortie si fausse.

dropna: bool, c'est vrai par défaut. Si TRUE et les touches de groupe ont des valeurs NA, les valeurs NA et la ligne et la colonne correspondantes seront supprimées.

Voyons quelques exemples qui vous aideront à apprendre à utiliser GroupBy () et appliquer () la fonction ensemble en pandas.

Exemple n ° 1: Déterminez la fréquence des valeurs dans une colonne DataFrame

Pour trouver la fréquence des valeurs dans une colonne DataFrame, nous devons d'abord nécessiter un dataframe. Le DataFrame sera créé à l'aide du PD.Fonction DataFrame ().

Nous avons créé un dataframe. Trouvez la fréquence des valeurs de données distinctes dans la colonne «groupe». Avant de trouver la fréquence, nous regrouperons d'abord les données à l'aide de la méthode GroupBy (). Ensuite, nous définirons une fonction à l'intérieur de la fonction applique () pour trouver la fréquence.

Les données de la colonne «groupe» sont maintenant regroupées. Pour trouver la fréquence, nous avons utilisé des fonctions et des attributs intégrés de Pandas: count () et forme []. À l'intérieur de la fonction d'application, le lambda La fonction est utilisée pour exécuter la fonction ou l'expression spécifiée. La fonction a déterminé que la fréquence de la catégorie X est 0.57 et pour y est 0.42. Le groupe X apparaît dans 57% des lignes; Alors que le groupe Y apparaît dans 42%.

Exemple n ° 2: Déterminez la valeur maximale dans une colonne DataFrame

Nous pouvons utiliser la fonction groupBy () avec la fonction applique () pour déterminer les valeurs maximales pour chaque données groupées. Encore une fois, nous créerons un dataframe afin que nous puissions trouver la valeur maximale après le regroupement des données de la colonne.

Tout d'abord, nous regrouperons les données de la colonne «équipe» pour créer des catégories. Ensuite, nous utiliserons la fonction Appliquer () à l'intérieur de laquelle nous utiliserons la fonction d'agrégation «max» pour trouver la valeur maximale dans les «points» de colonne pour chaque catégorie.

L'équipe de colonne est regroupée en trois catégories. Ensuite, la fonction applique () a déterminé la valeur maximale du «point» de la colonne pour chaque catégorie. La catégorie «Ace» a la valeur maximale de 14; tandis que 15 et 17 sont les valeurs max pour les groupes bêta et champion, respectivement.

Exemple n ° 3: effectuer des calculs personnalisés en utilisant la fonction appliquer () après le regroupement des données

Au lieu d'utiliser uniquement des fonctions d'agrégation intégrées de pandas, nous pouvons également définir des fonctions personnalisées ou créer une expression à l'intérieur du appliquer() fonction pour effectuer des calculs personnalisés. Créons une dataframe à partir de laquelle nous regrouperons les données d'une colonne spécifique. Ensuite, nous effectuerons des calculs.

Calculons la différence moyenne entre les valeurs pour chaque groupe.

Les données de la colonne «étudiante» sont regroupées en trois catégories «Billy», «Jim» et «Mandy». La différence moyenne entre la colonne «total_marks» et «obtenue_marks» est obtenue en soustrayant les valeurs de la colonne «obtenue_marks» de la colonne «total_marks» et en lui appliquant la fonction moyenne (). La valeur de différence moyenne pour la catégorie «Billy» est 3.66. Alors que la différence moyenne pour les valeurs groupées Jim et Mandy sont respectivement de 3 et 4.

Conclusion

Dans ce tutoriel, nous avons discuté de la façon d'utiliser GroupBy () et Appliquer () fonctions ensemble en pandas. Nous avons vu la syntaxe des deux fonctions ainsi que leurs paramètres pour comprendre leur fonctionnalité. Nous avons mis en œuvre quelques exemples dans ce tutoriel pour vous apprendre comment vous pouvez utiliser les fonctions groupBy () et appliquer () en utilisant les fonctions intégrées ou en définissant des fonctions personnalisées en pandas.