Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

329
Vistas
Devuelva el valor de la fila anterior según la columna "ID" para encontrar diferencias entre la fila actual y la fila anterior

Soy nuevo en Python. Tengo un problema al tratar de buscar valores de fila anteriores basados en "ID" y "marca de tiempo" en un marco de datos de Python. ¿Alguien puede aconsejarme cómo debo derivar la solución?

A continuación se muestra un ejemplo sencillo:

Por ejemplo:

id: marca de tiempo: sapStock laststockdate laststockvalue

167777 14/12/2021 184 13/12/2021 143 169406 14/12/2021 56 13/12/2021 60

ingrese la descripción de la imagen aquí

 #Import Libraries import pandas as pd #Read CSV df = pd.read_csv(r'C:\Users\User\OneDrive\Desktop\Test.csv') #Preview dataframe df #Get last value of sapStock based on "id" and "timestamp" df['sapStockDifference'] = df.sapStock.diff(periods=1) df

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Espero que esto pueda ayudar:

 import pandas as pd import numpy as np df = pd.DataFrame({'id': ['169653', '167777', '169406', '165253', '169653', '167777', '169406', '165253', '169653', '167777', '169406', '165253', '169653', '167777', '169406', '165253'], 'sapStock': [234, 162, 36, 47, 264, 158, 60, 46, 279, 143, 60, 46, 364, 184, 56, 46], 'timestamp': ['11/12/2021', '11/12/2021', '11/12/2021', '11/12/2021', '12/12/2021', '12/12/2021', '12/12/2021', '12/12/2021', '13/12/2021', '13/12/2021', '13/12/2021', '13/12/2021', '14/12/2021', '14/12/2021', '14/12/2021', '14/12/2021']}) df['timestamp'] = pd.to_datetime(df['timestamp']) df['laststockvalue'] = df.sort_values(['timestamp']).groupby(df.id)['sapStock'].apply(lambda x: x.shift(1)).fillna(value=np.nan) df['Difference'] = df.sort_values(['timestamp']).groupby(df.id)['sapStock'].apply(lambda x: x - x.shift(1)).fillna(value=np.nan) print(df) # id sapStock timestamp laststockvalue Difference # 0 169653 234 2021-11-12 NaN NaN # 1 167777 162 2021-11-12 NaN NaN # 2 169406 36 2021-11-12 NaN NaN # 3 165253 47 2021-11-12 NaN NaN # 4 169653 264 2021-12-12 234.0 30.0 # 5 167777 158 2021-12-12 162.0 -4.0 # 6 169406 60 2021-12-12 36.0 24.0 # 7 165253 46 2021-12-12 47.0 -1.0 # 8 169653 279 2021-12-13 264.0 15.0 # 9 167777 143 2021-12-13 158.0 -15.0 # 10 169406 60 2021-12-13 60.0 0.0 # 11 165253 46 2021-12-13 46.0 0.0 # 12 169653 364 2021-12-14 279.0 85.0 # 13 167777 184 2021-12-14 143.0 41.0 # 14 169406 56 2021-12-14 60.0 -4.0 # 15 165253 46 2021-12-14 46.0 0.0
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda