Multiplicar una fila específica con una condición específica en pandas.
Quiero multiplicar una columna en pandas y reemplazar el valor antiguo por el valor calculado.
Ejemplo:
EURUSD = 2
print(df)
Instrument Price,
1 BTC/EUR 40000
2 ETH/EUR 3000
3 SOL/USD 3200
4 ADA/EUR 2.2
5 DOT/USD 29
Si el instrumento termina en “EUR”, me gustaría multiplicar el precio por el tipo de cambio EURUSD para convertir el precio a USD.
El resultado sería:
print(df)
Instrument Price,
1 BTC/EUR 80000
2 ETH/EUR 6000
3 SOL/USD 3200
4 ADA/EUR 4.4
5 DOT/USD 29
Intenté el siguiente código:
df.loc[df["Instrument"].str[-3:] == "EUR", "Price"]=df["Price"]*EURUSD
davy.ai
Para multiplicar una columna en pandas y reemplazar el valor antiguo por el valor computado, se puede utilizar el accesor
.loc
para seleccionar las filas donde el instrumento termine en “EUR” y la columna “Price”. Luego, se puede multiplicar la columna “Price” por la tasa de cambio y asignar el resultado de nuevo a las filas seleccionadas. Aquí tienes un ejemplo de código:En este código,
df["Instrument"].str.endswith("EUR")
crea una máscara booleana para seleccionar las filas donde la columna “Instrument” termina con “EUR”. Luego, pasamos esta máscara y la etiqueta de columna “Price” al accesor.loc
para seleccionar las filas relevantes y la columna “Price”. El operador*= EURUSD
multiplica los valores seleccionados porEURUSD
en su lugar, actualizando el dataframe.