我正在尝试根据过期和删除的数据帧分组。 在那之后,我想计算所有具有相同行权和到期日的看涨期权和看跌期权之间的差额。在下面的示例中,只有第1行和第2行会产生一个结果(15.37001-1.495=)=13.875
如果不写for循环,我怎么能继续呢?我想到了一些类似的事情:
df.groupby(["Expiration","Strike"]).agg(lambda x: x[x.Type == "call"].Price - x[x.Type == "put"].Price + x.Strike)
但是,我不确定如何将这样的if(Type equals call)参数传递给groupby函数
Type Price Expiration Strike
0 put 145.000000 2021-01-15 420.0
1 call 15.370001 2018-11-30 262.0
2 put 1.495000 2018-11-30 262.0
3 call 14.930000 2018-11-30 262.5
您可以通过^{} 使用自定义函数,其中
next
和iter
用于获取第一个值,如果不匹配,则获取NaN
:另一种解决方案:
相关问题 更多 >
编程相关推荐