Similar a this R question, me gustaría aplicar una función a cada elemento de una serie (o cada fila en un DataFrame) usando pandas, pero quiero usar como argumento para esta función el índice o id. de esa fila. Como un ejemplo trivial, supongamos que uno quiere crear una lista de tuplas de la forma [(index_i, value_i), ..., (index_n, value_n)]. Utilizando un simple bucle for Python, no puedo hacer: aplicación específica de fila de pandas
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')]
Pero tiene que haber una manera más eficiente de hacer esto? Tal vez algo más Panda-ish como Series.apply? En realidad, no estoy preocupado (en este caso) por devolver algo significativo, sino más por la eficiencia de algo así como 'aplicar'. ¿Algunas ideas?
Gracias @ luke14free para el puntero sobre enumerar. Al final, probablemente proporcioné un ejemplo excesivamente simplista, pero realmente proporcionaste una respuesta adecuada. Sin embargo, lo que realmente quiero es algo así como su tercer ejemplo, con la condición añadida de que, por ejemplo, el exponente es una función de la fila o índice ... –
Hola @CarsonFarmer - ver mi última edición – luke14free
Gracias @ luke14free. Al final, hice lo que me sugirió y resolví mi problema de otra manera mediante la reestructuración de mis datos. –