jonboy:
El siguiente devuelve un valor lógico en el que los números enteros son un aumento en la fila anterior.
Sin embargo, estoy esperando para incorporar filas de filtrado basadas fuera cuerdas. En concreto, quiero devolver filas entre B
y C
. Así que siempre C
sigueB
import pandas as pd
df = pd.DataFrame({
'X' : ['A','B','C','D'],
'Y' : [1.0,1.0,2.0,1.0],
})
df = df.assign(Z = df.Y.diff().gt(0))
Fuera:
X Y
0 1.0 False
1 1.0 False
2 2.0 True
3 1.0 False
Pero lo que quiero hacer uso de los valores de cadena para devolver filas cuando C
la siguiente manera B
.
Previsto de salida:
X Y
1 B 3.0
2 C 2.0
Quang Hoang:
Esto es lo que quieres:
# current is B and next is C
s = df['X'].eq('B') & df['X'].shift(-1).eq('C')
# current row and the next row
df[s | s.shift()]