Compétences Pandas : explication détaillée des méthodes apply et applymap dans DataFrame

coldplay.xixi
Libérer: 2020-09-17 16:49:02
avant
3131 Les gens l'ont consulté

Compétences Pandas : explication détaillée des méthodes apply et applymap dans DataFrame

Recommandations d'apprentissage associées : tutoriel vidéo Python

Aujourd'hui, c'est le traitement des données PandasLe cinquième article du sujet spécial, parlons de quelques opérations avancées des pandas.

Dans l'article précédent, nous avons présenté quelques méthodes de calcul de panads, telles que les quatre opérations arithmétiques de deux dataframes, et la méthode de remplissage de Null dans le dataframe. Dans l'article d'aujourd'hui, nous parlerons du mécanisme de diffusion dans dataframe et de la façon d'utiliser la fonction apply.

diffusion de trames de données

mécanisme de diffusionNous ne le connaissons en fait pas. Nous avons introduit la diffusion dans notre précédent article spécial présentant numpy. Lorsque nous opérons sur deux tableaux de tailles incohérentes, le système remplira automatiquement celui avec la plus petite dimension pour qu'il soit identique à l'autre avant de calculer.

Par exemple, si nous soustrayons un tableau à une dimension d'un tableau à deux dimensions, numpy étendra d'abord le tableau à un chiffre à deux dimensions, puis effectuera l'opération de soustraction. Il semble que chaque ligne du tableau bidimensionnel soit soustraite de ce tableau unidimensionnel. On comprend que l'on diffuse l'opération de soustraction de ce tableau unidimensionnel à chaque ligne ou colonne du tableau bidimensionnel.

Dans l'exemple ci-dessus, nous avons créé un tableau numpy puis soustrait sa première ligne. Lorsque nous comparons les résultats finaux, nous constaterons que chaque ligne du tableau arr voit sa première ligne soustraite.

La même opération peut également être effectuée sur dataframe.

Bien sûr, nous pouvons également diffuser vers une certaine colonne, mais le mécanisme de diffusion des quatre opérations arithmétiques de la dataframe prend effet par défaut sur la ligne si nous voulons l'utiliser sur. la colonne, nous devons utiliser la méthode d'opération arithmétique et spécifier l'axe que vous souhaitez faire correspondre.

Fonctions et mappages

Un autre avantage des pandas est que est compatible avec certaines méthodes de calcul et fonctions de numpy, de sorte que nous pouvons également utiliser certaines fonctions numpy sur DataFrame, ce qui élargit considérablement les méthodes d'utilisation et la méthode d'opération.

Par exemple, si nous voulons convertir tous les éléments du DataFrame en son carré, nous pouvons facilement le faire en utilisant la méthode du carré de numpy :

Nous peut Le DataFrame est transmis en tant que paramètre de la fonction numpy, mais que se passe-t-il si nous voulons définir nous-mêmes une méthode et l'appliquer au DataFrame ?

Nous pouvons facilement y parvenir en utilisant la méthode apply. La méthode apply est un peu comme la méthode map native de Python, qui peut effectuer un calcul de mappage sur chaque élément du DataFrame. Il suffit de transmettre la méthode que nous voulons appliquer au DataFrame dans la méthode apply, ce qui signifie que le paramètre qu'il accepte est une fonction, qui est une application de programmation fonctionnelle très typique.

Par exemple, si on veut mettre au carré le DataFrame, on peut aussi passer la fonction np.square en paramètre.

En plus du fait que la

apply méthode peut être utilisée sur un DataFrame entier, nous pouvons également l'appliquer à une certaine ligne ou une certaine colonne Soit sur une certaine partie, la méthode d'application est la même. Par exemple, nous pouvons appliquer la méthode square à une certaine ligne et une certaine colonne du DataFrame.

De plus, la portée de la fonction dans apply ne se limite pas aux éléments. On peut également écrire des fonctions qui agissent sur une ligne ou une colonne. Par exemple, si nous voulons calculer la valeur maximale de chaque colonne du DataFrame, nous pouvons écrire comme ceci :

Le x dans cette fonction anonyme est en fait a Series , alors le max ici est la méthode max fournie avec Series. En d'autres termes, la portée de l'application est la série Bien que l'effet final soit que chaque élément est modifié, la portée de apply n'est pas l'élément mais la série. Nous appliquons des opérations sur les lignes ou les colonnes, qui appliquent les modifications à chaque élément.

De même, nous pouvons également limiter l'objet d'application de apply aux lignes. Nous devons également passer en axis pour le limiter. Nous pouvons passer en axis='columns' ou spécifier axis=1. Deux L'effet est le même.

De plus, le résultat renvoyé par apply ne doit pas nécessairement être un scalaire, il peut également s'agir d'une liste ou d'une série composée de plusieurs valeurs. En fait, les deux le sont. de même, car même si une liste est renvoyée, elle sera convertie en série.

Enfin, introduisons applymap, qui est une carte au niveau des éléments que nous pouvons utiliser pour faire fonctionner chaque élément du DataFrame. Par exemple, nous pouvons l'utiliser pour convertir le format des données dans DataFrame.

La raison pour laquelle nous l'appelons applymap au lieu de map est qu'il existe déjà une carte dans la méthode Series, donc applymap a été créé pour la distinguer.

Il convient de noter ici que si vous modifiez applymap dans le code ci-dessus pour appliquer, une erreur sera signalée. La raison de l'erreur est également très simple, car la portée de la méthode apply n'est pas l'élément mais la série, et la série ne prend pas en charge une telle opération.

Résumé

Dans l'article d'aujourd'hui, nous présentons principalement comment pour utiliser apply et applymap dans les pandas. Ces deux méthodes sont très couramment utilisées dans notre exploitation quotidienne des données DataFrame. On peut dire qu'il s'agit d'API au niveau du scalpel. Le maîtriser nous est très utile pour gérer le traitement des données. Si vous comprenez l'application de la méthode de cartographie native en Python, je pense que vous serez en mesure de comprendre l'article d'aujourd'hui sans problème.

Si vous souhaitez en savoir plus sur la programmation, faites attention à la rubrique Formation php !

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!

Étiquettes associées:
source:juejin.im
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