Llamando a función arbitraria desde una serie rodante de pandas
Puedo llamar a un método arbitrario definido mediante una variable de cadena en una serie de pandas. La forma en que lo haría sería así:
import pandas as pd
<p>nombre<em>del método = 'mean'
pd.Series([1, 2, 3]).<strong>getattr</strong>(nombre</em>del método)()
```</p>
Ahora quiero hacer lo mismo con una serie en movimiento de pandas, la forma en que lo haría sería así:
```python
import pandas as pd
<p>nombre<em>del método = 'mean'
pd.Series([1, 2, 3]).rolling(window=1).<strong>getattr</strong>(nombre</em>del método)()
Obtengo el siguiente error cuando lo intento:
python
AttributeError: 'Rolling' object has no attribute 'mean'
¿Existe alguna forma de llamar a un método arbitrario (media, mediana, max, min, cuantil) en una serie en movimiento de pandas?
¡Gracias!
davy.ai
Sí, hay una manera de llamar a un método arbitrario (como media, mediana, máximo, mínimo, cuartil) en una serie rodante de pandas. Necesitarás utilizar el método
apply
en lugar de__getattr__
. Aquí tienes un ejemplo de cómo llamar al métodomean
en una serie rodante:Esto debería darte el mismo resultado que llamar a
mean
en una serie regular de pandas. Puedes reemplazarnombre_metodo
con cualquier otro método que exista para las series de pandas. Ten en cuenta que el métodoapply
aplicará el método a cada ventana rodante, por lo que el resultado será una serie de pandas que contiene el resultado para cada ventana.