Application d'une fonction avec des arguments à une série Pandas
Problème :
Vous devez appliquer une fonction à une série pandas avec des arguments supplémentaires. Cependant, la méthode pandas apply() n'accepte qu'une fonction avec un seul argument.
Solution :
Versions plus récentes de Pandas (après octobre 2017) :
pandas apply() a été mis à jour pour prendre en charge les arguments de position et de mot-clé. Pour transmettre des paramètres, utilisez la syntaxe suivante :
<code class="python">my_series.apply(your_function, args=(param1, param2, ...), extra_kw=arg1)</code>
Anciennes versions de Pandas :
Créez une fonction partielle en utilisant functools.partial(func, *args, **kwargs) pour lier des arguments supplémentaires à votre fonction :
<code class="python">add_3 = functools.partial(operator.add, 3) my_series.apply(add_3)</code>
Passez une fonction lambda qui intègre les arguments supplémentaires :
<code class="python">my_series.apply(lambda x: your_func(x, arg1, arg2, ...))</code>
Définissez une fonction personnalisée qui accepte tous les arguments nécessaires, y compris les éléments de la série comme premier paramètre :
<code class="python">def my_custom_func(x, arg1, arg2, ...): return ... my_series.apply(my_custom_func, args=(arg1, arg2, ...))</code>
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!