"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo calcular una columna basada en los valores de la fila anterior en Pandas usando la función `apply()`?

¿Cómo calcular una columna basada en los valores de la fila anterior en Pandas usando la función `apply()`?

Publicado el 2024-11-01
Navegar:771

How to Calculate a Column Based on Previous Row Values in Pandas Using the `apply()` Function?

Aplicar cálculos con valores de fila anteriores en Pandas

En Pandas, enfrentar el desafío de incorporar valores de fila anteriores en los cálculos durante la manipulación de datos no es poco común. Uno de esos escenarios implica la necesidad de usar el valor de la fila anterior al calcular una nueva columna usando la función apply().

Considere un escenario donde tenemos un DataFrame con la siguiente estructura:

Index_Date    A   B     C    D
================================
2015-01-31    10   10   Nan   10
2015-02-01     2    3   Nan   22
2015-02-02    10   60   Nan  280
2015-02-03    10  100   Nan  250

Nuestro objetivo es completar la columna 'C' con valores calculados. Para la primera fila, 'C' se deriva de 'D'. Para las filas siguientes, 'C' se calcula multiplicando el valor 'C' de la fila anterior por el valor 'A' de la fila actual y sumando el valor 'B'.

Enfoque

Para lograr esto, empleamos una combinación de inicialización e iteración dentro de la función apply().

  1. Inicializa el valor 'C' para la primera fila usando el valor de 'D'.
df.loc[0, 'C'] = df.loc[0, 'D']
  1. Iterar a través de las filas restantes y calcule los valores 'C':
for i in range(1, len(df)):
    df.loc[i, 'C'] = df.loc[i - 1, 'C'] * df.loc[i, 'A']   df.loc[i, 'B']

Resultado

Este enfoque completará efectivamente la columna 'C' con los valores calculados deseados:

Index_Date    A   B    C    D
================================
2015-01-31  10  10   10   10
2015-02-01   2   3   23   22
2015-02-02  10  60  290  280
2015-02-03  10  100  3000  250
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3