python pandas dataframe time-series

python - Pandas comparan la siguiente fila



add title pandas plot (1)

Parece que quieres usar el método Series.shift .

Usando este método, puede generar nuevas columnas que se compensan con las columnas originales. Me gusta esto:

df[''qty_s''] = df[''qty''].shift(-1) df[''t_s''] = df[''t''].shift(-1) df[''z_s''] = df[''z''].shift(-1)

Ahora puedes comparar estos:

df[''is_something''] = (df[''qty''] == df[''qty_s'']) & (df[''t''] < df[''t_s'']) & (df[''z''] == df[''z_s''])

Aquí hay un ejemplo simplificado de cómo Series.shift funciona para comparar la siguiente fila de la actual:

df = pd.DataFrame({"temp_celcius":pd.np.random.choice(10, 10) + 20}, index=pd.date_range("2015-05-15", "2015-05-24")) df temp_celcius 2015-05-15 21 2015-05-16 28 2015-05-17 27 2015-05-18 21 2015-05-19 25 2015-05-20 28 2015-05-21 25 2015-05-22 22 2015-05-23 29 2015-05-24 25 df["temp_c_yesterday"] = df["temp_celcius"].shift(1) df temp_celcius temp_c_yesterday 2015-05-15 21 NaN 2015-05-16 28 21 2015-05-17 27 28 2015-05-18 21 27 2015-05-19 25 21 2015-05-20 28 25 2015-05-21 25 28 2015-05-22 22 25 2015-05-23 29 22 2015-05-24 25 29 df["warmer_than_yesterday"] = df["temp_celcius"] > df["temp_c_yesterday"] temp_celcius temp_c_yesterday warmer_than_yesterday 2015-05-15 21 NaN False 2015-05-16 28 21 True 2015-05-17 27 28 False 2015-05-18 21 27 False 2015-05-19 25 21 True 2015-05-20 28 25 True 2015-05-21 25 28 False 2015-05-22 22 25 False 2015-05-23 29 22 True 2015-05-24 25 29 False

Si entendí mal su consulta, publique un comentario y actualizaré mi respuesta.

Tengo un marco de datos como este

d={} d[''z'']=[''Q8'',''Q8'',''Q7'',''Q9'',''Q9''] d[''t'']=[''10:30'',''10:31'',''10:38'',''10:40'',''10:41''] d[''qty'']=[20,20,9,12,12]

Quiero comparar la primera fila con la segunda fila

  1. es la misma cantidad que la siguiente fila Y
  2. es t mayor en la siguiente fila Y
  3. es el valor z igual que la siguiente fila

El valor deseado es

qty t z valid 0 20 2015-06-05 10:30:00 Q8 False 1 20 2015-06-05 10:31:00 Q8 True 2 9 2015-06-05 10:38:00 Q7 False 3 12 2015-06-05 10:40:00 Q9 False 4 12 2015-06-05 10:41:00 Q9 True