Passer des arguments aux fonctions d'application de séries dans Python Pandas
La bibliothèque pandas fournit la méthode 'apply()' pour appliquer une fonction à chaque élément d'une série. Cependant, les anciennes versions de Pandas ne permettent pas de transmettre des arguments supplémentaires à la fonction.
Solution pour les anciennes versions de Pandas :
Pour gérer cette limitation dans les anciennes versions de pandas, vous pouvez utiliser les fonctions 'functools.partial()' ou 'lambda' :
Utilisation de 'functools.partial()' :
<code class="python">import functools import operator # Define a function with multiple arguments def add_3(a, b, c): return a + b + c # Create a partial function by binding extra arguments add_3_partial = functools.partial(add_3, 2, 3) # Apply the partial function to a series series.apply(add_3_partial)</code>
Utilisation de 'lambda' :
<code class="python"># Create a lambda function to pass extra arguments to the apply method lambda_func = lambda x: my_function(a, b, c, d, ..., x) # Apply the lambda function to the series series.apply(lambda_func)</code>
Solution pour les versions plus récentes de Pandas :
Depuis octobre 2017, pandas prend en charge la transmission des arguments de position et de mot-clé directement à la méthode 'apply()' :
<code class="python">series.apply(my_function, args=(2, 3, 4), extra_kw={"example": 5})</code>
Dans cette syntaxe, les arguments de position sont ajoutés après l'élément du Série, tandis que les arguments de mots-clés sont transmis sous forme de dictionnaire.
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!