Eu tenho um dataframe parecido com este:
Put/Call StrikePrice fixedprice floatprice fixedspread floatspread
Put 10 0 20 0 0
Put 10 0 20 0 0
nan 0 0 0 13 15
nan 0 0 0 14 16
Se a coluna de venda/compra tiver o valor 'Put', preciso pegar o valor da coluna de preço de exercício e colocá-lo na coluna de spread fixo, e preciso pegar o valor da coluna de preço flutuante e colocá-lo na coluna de preço flutuante coluna espalhada. Assim que os valores estiverem nos lugares corretos, posso me livrar da coluna Put/Call, coluna de preço de exercício, coluna de preço flutuante e coluna de preço fixo.
a saída deve ser semelhante a esta:
fixedspread floatspread
10 20
10 20
13 15
14 16
Você pode combinar diretamente as colunas
mask
usando a matriz numpy subjacente para o lado direito:Saída:
importar numpy como np
condições = [df['Colocar/Call'] == 'Colocar']
escolhas_fixedspread = [df['StrikePrice']]
escolhas_floatspread = [df['floatprice']]
df['fixedspread'] = df['fixedspread'] + np.select(condições, escolhas_fixedspread, padrão=0)
df['floatspread'] = df['floatspread'] + np.select(condições, escolhas_floatspread, padrão=0)
imprimir(df[['fixedspread', 'floatspread']])