Maison >développement back-end >Tutoriel Python >Comment appliquer une fonction avec des arguments à une série Pandas ?

Comment appliquer une fonction avec des arguments à une série Pandas ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-22 23:15:29304parcourir

How to Apply a Function with Arguments to a Pandas Series?

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 :

  1. Utilisation de functools.partial :

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>
  1. Utilisation une expression lambda :

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>
  1. Création d'une fonction personnalisée :

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!

Déclaration:
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