es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo ejecutar funciones diferentes en diferentes partes de un dataframe en Python?

Tengo un dataframe (df).
Necesito encontrar la desviación estándar del dataframe a partir de este.
Para la primera fila, quiero usar la fórmula de varianza tradicional.

suma de (x – x(media))/n

y a partir de la segunda fila (=i) quiero usar la siguiente fórmula

lambda(varianza de la primera fila) + (1-lambda) (primera fila de retornos)^2

※Por primera fila, me refiero a la fila anterior.


Generar dataframe de muestra import numpy as np import pandas as pd df=pd.Dataframe({'a':range(1,7), 'b':[x2 for x in range(1,7)], 'c':[x3 for x in range(1,7)]})

Generar dataframe de retornos returns=df.pct_change()

Generar nueva dataframe de ceros d=pd.DataFrame(0,index=np.arange(len(returns)),columns=returns.columns) rellenar la primera fila lamb=0.94 d.iloc[0]=list(returns.var())

¿Cómo puedo rellenar la segunda fila hasta el final usando la segunda fórmula?

Debería ser algo como

d[1:].agg(lambda x: lambx.shift(-1)+(1-lamb)returns[:2]

pero obviamente arrojó un error largo.
¿Podrías ayudar por favor?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Puedes usar un bucle for para rellenar la segunda fila y las siguientes con la fórmula que proporcionaste. El código se vería algo así:

    python
    for i in range(1, len(returns)):
    d.iloc[i] = lambd.iloc[i-1] + (1-lamb)(returns.iloc[i-1]**2)

Comments are closed.