¿Cómo cambiar el valor de arriba hacia abajo condicionalmente en columnas de un dataframe de Python Pandas?
¿Cómo puedo copiar el valor anterior de arriba a abajo condicionalmente en columnas en un dataframe de Python Pandas?
¿Cómo puedo resolverlo por vectorización con Pandas?
Creé las columnas B y C operando en un dataframe.
Quiero cambiar las columnas en el dataframe de arriba a abajo.
Tengo esto
list_one = [1.10, 1.20, 1.25, 1.30, 0.50, 0.60, 1.70, 1.80, 2.00]
df = pd.DataFrame({'A': list_one})
df['B'] = df['A'] + df['A'] * 0.1
df['C'] = df['A'] - df['A'] * 0.1
print(df)
output>>>
A B C
0 1.100 1.210 0.990
1 1.200 1.320 1.080
2 1.250 1.375 1.125
3 1.300 1.430 1.170
4 0.500 0.550 0.450
5 0.600 0.660 0.540
6 1.700 1.870 1.530
7 1.800 1.980 1.620
8 2.000 2.200 1.800
Para ser más descriptivo, necesito estas condiciones y dataframe.
if A < B y A > C :
B = B.shift()
C = C.shift()
D = 0
elif A > B:
D = 1
elif A < B:
D = -1
¿Cómo puedo obtener este resultado?
A B C D
0 1.100 1.210 0.990 0
1 1.200 1.210 0.990 0
2 1.250 1.375 1.125 1
3 1.300 1.375 1.125 0
4 0.500 0.550 0.450 -1
5 0.600 0.660 0.540 1
6 1.700 1.870 1.530 1
7 1.800 1.870 1.530 0
8 2.000 2.200 1.800 1
Mi código defectuoso no está dando el resultado anterior.
davy.ai
Para resolver este problema utilizando la vectorización con Pandas, podemos definir las condiciones utilizando máscaras booleanas y aplicarlas directamente a las columnas utilizando indexación booleana.
Esto nos dará la salida esperada: