es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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
Tags:  , ,

Answer

  1. Avatar for 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:

    EURUSD = 2
    df.loc[df["Instrument"].str.endswith("EUR"), "Price"] *= EURUSD
    

    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 por EURUSD en su lugar, actualizando el dataframe.

Comments are closed.