Semblable à this R question, je voudrais appliquer une fonction à chaque élément d'une série (ou chaque ligne d'un DataFrame) en utilisant Pandas, mais je veux utiliser comme argument de cette fonction l'index ou l'id de cette rangée. Comme un exemple trivial, supposons que l'on veuille créer une liste de tuples de la forme [(index_i, valeur_i), ..., (index_n, valeur_n)]. L'utilisation d'un simple Python pour la boucle, je peux le faire: pandas row specific apply
In [1] L = []
In [2] s = Series(['six', 'seven', 'six', 'seven', 'six'],
index=['a', 'b', 'c', 'd', 'e'])
In [3] for i, item in enumerate(s):
L.append((i,item))
In [4] L
Out[4] [(0, 'six'), (1, 'seven'), (2, 'six'), (3, 'seven'), (4, 'six')]
Mais il doit y avoir un moyen plus efficace de le faire? Peut-être quelque chose de plus Panda-ish comme Series.apply? En réalité, je ne m'inquiète pas (dans ce cas) de rendre quelque chose de significatif, mais plutôt d'améliorer quelque chose comme "appliquer". Des idées?
Merci @ luke14free pour le pointeur sur l'énumération. En fin de compte, j'ai probablement fourni un exemple trop simpliste, mais vous avez en effet fourni une réponse appropriée. Ce que je veux vraiment, c'est quelque chose comme votre troisième exemple, avec la condition supplémentaire que disons, l'exposant est une fonction de la ligne ou de l'index ... –
Hey @CarsonFarmer - voir mon dernier edit – luke14free
Merci @ luke14free. En fin de compte, j'ai fait comme vous l'avez suggéré, et j'ai résolu mon problème d'une manière différente en restructurant mes données. –