Comment écrire une fonction lambda qui dépend de deux variables (colonnes) en python
J'ai un ensemble de données, df, avec deux variables, x et y. Je veux écrire une fonction qui effectue les opérations suivantes:
x si x>100 et y<50 d'autre y
Je suis habituée à faire de l'analyse de données dans STATA, donc je suis relativement nouveau pour les pandas pour l'analyse des données. Si cela peut aider, dans stata, il devrait ressembler à:
remplacer x = cond(x>100 & y<50, x, y)
En d'autres termes, la fonction est subordonnée à deux colonnes dans le df et renvoie la valeur d'une variable ou de l'autre de chaque ligne selon que la condition est remplie.
Jusqu'à présent j'ai été la création de nouvelles variables par le biais de nouvelles fonctions comme:
df.dummyVar = df.x.appliquer(lambda x: 1 si x>100, 0 sinon)
À l'aide de StackOverflow et de la documentation, j'ai seulement été en mesure de trouver comment appliquer une fonction dépendant d'une seule variable à plus d'une colonne (à l'aide de l'option d'axe). S'il vous plaît aider.
Vous devez vous connecter pour publier un commentaire.
Utilisation
where
:Ce sera beaucoup plus rapide que l'exécution d'une opération d'application comme il est vectorisée.
Comme ceci:
Lambda(s) en Python sont équivalentes à une définition de fonction normale.
NB: Le corps d'un Lambda doit être une expression valide. Cela signifie que vous ne pouvez pas utiliser des choses comme:
return
par exemple; un Lambda sera de retour de la dernière expression évaluée.Pour la bonne lecture, voir:
Il y a maintenant une manière assez facile à faire. Utilisez simplement l'appliquer sur l'ensemble de données: