我有一个如下所示的数据框:
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
如果看跌/看涨列的值为“Put”,我需要从执行价格列中取出值并将其放入固定点差列中,并且需要从浮动价格列中取出值并将其放入浮动中传播列。一旦这些值位于正确的位置,我就可以去掉看跌/看涨列、执行价格列、浮动价格列和固定价格列。
输出应如下所示:
fixedspread floatspread
10 20
10 20
13 15
14 16
mask
您可以使用右侧的底层 numpy 数组直接组合列:输出:
将 numpy 导入为 np
条件 = [df['看跌/看涨'] == '看跌']
choice_fixedspread = [df['StrikePrice']]
choice_floatspread = [df['浮动价格']]
df['fixedspread'] = df['fixedspread'] + np.select(条件,choices_fixedspread,默认=0)
df['floatspread'] = df['floatspread'] + np.select(条件,choices_floatspread,默认=0)
print(df[['固定价差', '浮动价差']])