215 votes

python pandas : appliquer une fonction avec des arguments à une série

Je veux appliquer une fonction avec des arguments à une série dans python pandas :

x = my_series.apply(my_function, more_arguments_1)
y = my_series.apply(my_function, more_arguments_2)
...

El documentation décrit la prise en charge d'une méthode d'application, mais elle n'accepte aucun argument. Existe-t-il une autre méthode qui accepte les arguments ? Ou bien, ai-je manqué une solution de contournement simple ?

Mise à jour (octobre 2017) : Notez que depuis que cette question a été posée à l'origine que les pandas apply() a été mis à jour pour gérer les arguments positionnels et les mots-clés et le lien de documentation ci-dessus reflète maintenant cela et montre comment inclure l'un ou l'autre type d'argument.

1voto

YoungSheldon Points 345

La plupart des choses sont couvertes dans d'autres réponses, mais je voudrais répéter une chose que vous avez peut-être oubliée, vous devez ajouter une virgule après vos arguments dans le tuple args, voir l'exemple ci-dessous :

df['some_column'].apply(function_name, args=(arg1 ,) #Here comma is necessary.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X