Python pandas | declaraciones condicionales triples
volumen | precio | fecha y hora |
---|---|---|
100 | 3 | 2021-09-29 04:00:00-04:00 |
900 | 2 | 2021-09-29 04:30:00-04:00 |
900 | 5 | 2021-09-29 05:30:00-04:00 |
500 | 9 | 2021-09-29 06:00:00-04:00 |
900 | 22 | 2021-09-29 06:30:00-04:00 |
900 | 1 | 2021-09-29 07:00:00-04:00 |
Lo que intento hacer: “entre el 2021-09-29 04:15:00-04:00 y el 2021-09-29 06:35:00-04:00, devuelva el precio con el volumen máximo. Si hay más de una fila/registro con el volumen máximo, entonces devuelva el precio más bajo de ellos (la salida esperada es 2).
Tengo lo siguiente pero no sé cómo anidar la declaración “entre” allí:
df[(df[‘fecha y hora’] >= ‘2021-09-29 04:15:00-04:00’) & (df[‘fecha y hora’] <= ‘2021-09-29 06:35:00-04:00’) & (df[‘volumen’] == df[‘volumen’].max())][‘precio’].min()
davy.ai
Para lograr la salida esperada para el escenario dado, el código debería modificarse de la siguiente manera:
El código anterior filtra el DataFrame para el rango de fecha y hora deseado y las filas con el volumen máximo dentro de ese rango, y luego devuelve el precio mínimo de esas filas. La función
loc
se utiliza para seleccionar el volumen máximo solo del rango de fecha y hora deseado.