Ähnlich wie this R question möchte ich eine Funktion für jedes Element in einer Serie (oder jeder Zeile in einem DataFrame) mit Pandas anwenden, aber als Argument für diese Funktion den Index oder die ID verwenden dieser Reihe. Nehmen wir als Beispiel an, dass man eine Liste von Tupeln der Form [(index_i, value_i), ..., (index_n, value_n)] erstellen möchte. Mit einem einfachen Python for-Schleife, kann ich tun: pandas row spezifisch anwenden
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')]
Aber es muss ein effizienter Weg, dies zu tun? Vielleicht etwas Panda-ähnliches wie Series.apply? In Wirklichkeit bin ich nicht besorgt (in diesem Fall), etwas Sinnvolles zurückzugeben, sondern mehr für die Effizienz von etwas wie "Anwenden". Irgendwelche Ideen?
Danke @ luke14free für den Zeiger über Aufzählung. Am Ende habe ich wahrscheinlich ein allzu simples Beispiel geliefert, aber Sie haben tatsächlich eine passende Antwort gegeben. Was ich wirklich will, ist etwas wie dein drittes Beispiel, mit der zusätzlichen Bedingung, dass der Exponent eine Funktion der Zeile oder des Indexes ist ... –
Hey @CarsonFarmer - siehe meine letzte Änderung – luke14free
Danke @ luke14free. Am Ende habe ich getan, was Sie vorgeschlagen haben, und mein Problem anders gelöst, indem ich meine Daten umstrukturiert habe. –