Découverte des Fonctions Lambda
Glissez pour afficher le menu
Une fonction lambda est une petite fonction anonyme définie avec le mot-clé lambda. Contrairement aux fonctions classiques définies avec def, une fonction lambda n'a pas de nom et est destinée à une logique courte et à usage unique.
La syntaxe est :
lambda arguments: expression
La fonction prend des arguments et retourne le résultat de expression. Quelques exemples simples :
12345double = lambda x: x * 2 print(double(5)) # Returns 10 is_even = lambda x: x % 2 == 0 print(is_even(4)) # Returns True
Utilisation de lambda avec iloc[]
Dans pandas, iloc[] accepte normalement des positions basées sur des entiers. Cependant, il est également possible de passer une fonction lambda – dans ce cas, x fait référence au DataFrame lui-même, et x.index fournit les valeurs d'index des lignes :
data.iloc[lambda x: x.index < 5]
Cela retourne les cinq premières lignes (indices 0 à 4). Voici ce que fait chaque partie :
lambda x: définit une fonction anonyme oùxest le DataFrame ;x.index: accède aux valeurs d'index des lignes ;x.index < 5: condition de filtrage ; seules les lignes dont l'index est inférieur à5sont sélectionnées.
Le résultat est un tableau booléen que iloc[] utilise pour filtrer les lignes.
Filtrage selon la parité de l'index
Un cas d'utilisation courant consiste à diviser un ensemble de données selon les indices pairs et impairs. L'opérateur modulo % retourne le reste de la division :
123456789101112import pandas as pd # Data import data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/4bf24830-59ba-4418-969b-aaf8117d522e/IMDb_Data_final.csv') # Rows with even indices (0, 2, 4, ...) even = data.iloc[lambda x: x.index % 2 == 0] print(even.head()) # Rows with odd indices (1, 3, 5, ...) odd = data.iloc[lambda x: x.index % 2 != 0] print(odd.head())
x.index % 2 == 0 est True lorsque l'index est divisible par 2 (pair), et False sinon.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion