Pandas: cómo encontrar la diferencia entre dos filas

Puedes opinar sobre este contenido:
  • 0
  • 0
  • 0
  • 0

Puede usar la función DataFrame.diff () para encontrar la diferencia entre dos filas en un DataFrame de pandas.

Esta función utiliza la siguiente sintaxis:

DataFrame.diff (puntos = 1, eje = 0)

dónde:

  • períodos: el número de filas anteriores para calcular la diferencia.
  • eje: busque la diferencia entre filas (0) o columnas (1).

Los siguientes ejemplos muestran cómo utilizar esta función en la práctica.

Ejemplo 1: encontrar la diferencia entre cada fila anterior

Supongamos que tenemos el siguiente DataFrame de pandas:

importar pandas como pd

#create DataFrame 
df = pd. DataFrame ({' período ': [1, 2, 3, 4, 5, 6, 7, 8],
                   ' ventas ': [12, 14, 15, 15, 18, 20, 19, 24],
                   ' devuelve ': [2, 2, 3, 3, 5, 4, 4, 6]})

#view DataFrame
 df

	devoluciones de ventas del período
0 1 12 2
1 2 14 2
2 3 15 3
3 4 15 3
4 5 18 5
5 6 20 4
6 7 19 4
7 8 24 6

El siguiente código muestra cómo encontrar la diferencia entre cada fila actual en un DataFrame y la fila anterior:

#add nueva columna para representar las diferencias de ventas entre cada fila 
df [' sales_diff '] = df [' sales ']. diff ()

#view DataFrame
 df

        período de devoluciones de ventas sales_diff
0 1 12 2 NaN
1 2 14 2 2,0
2 3 15 3 1,0
3 4 15 3 0,0
4 5 18 5 3,0
5 6 20 4 2,0
6 7 19 4 -1,0
7 8 24 6 5,0

Tenga en cuenta que también podemos encontrar la diferencia entre varias filas antes. Por ejemplo, el siguiente código muestra cómo encontrar la diferencia entre cada fila actual y la fila que ocurrió tres filas antes:

#add nueva columna para representar las diferencias de ventas entre la fila actual y las 3 filas anteriores 
df [' sales_diff '] = df [' sales ']. diff (periodos = 3 )

#view DataFrame
 df

        período de devoluciones de ventas sales_diff
0 1 12 2 NaN
1 2 14 2 NaN
2 3 15 3 NaN
3 4 15 3 3,0
4 5 18 5 4.0
5 6 20 4 5,0
6 7 19 4 4.0
7 8 24 6 6,0

Ejemplo 2: Encuentre la diferencia según la condición

También podemos filtrar el DataFrame para mostrar filas donde la diferencia entre la fila actual y la fila anterior es menor o mayor que algún valor.

Por ejemplo, el siguiente código devuelve solo las filas en las que el valor de la fila actual es menor que el valor de la fila anterior:

importar pandas como pd

#create DataFrame 
df = pd. DataFrame ({' período ': [1, 2, 3, 4, 5, 6, 7, 8],
                   ' ventas ': [12, 14, 15, 13, 18, 20, 19, 24],
                   ' devuelve ': [2, 2, 3, 3, 5, 4, 4, 6]})

# encontrar la diferencia entre cada fila actual y la fila anterior
 df [' sales_diff '] = df [' sales ']. diff ()

#filtro para filas donde la diferencia es menor que cero
 df = df [df [' sales_diff '] < 0 ]

#view DataFrame
 df

        período de devoluciones de ventas sales_diff
3 4 13 3 -2,0
6 7 19 4 -1,0

Recursos adicionales

Cómo encontrar valores únicos en múltiples columnas en Pandas
Cómo filtrar un DataFrame de Pandas por valores de columna
Cómo seleccionar filas por índice en un DataFrame de Pandas

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Redactor del artículo

  • Luis Benites
    Director de Statologos.com

    Tengo una Maestría en Ciencias en Estadística Aplicada y he trabajado en algoritmos de aprendizaje automático para empresas profesionales tanto en el sector de la salud como en el comercio minorista.

    Ver todas las entradas

¿Te hemos ayudado?

Ayudanos ahora tú, dejanos un comentario de agradecimiento, nos ayuda a motivarnos y si te es viable puedes hacer una donación:

La ayuda no cuesta nada

Por otro lado te rogamos que compartas nuestro sitio con tus amigos, compañeros de clase y colegas, la educación de calidad y gratuita debe ser difundida, recuerdalo:

Deja un comentario

La mejor manera de comprender un conjunto de datos es calcular estadísticas descriptivas para las variables dentro del conjunto de…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!