Pandas Python 中的条件乘法
Posted
技术标签:
【中文标题】Pandas Python 中的条件乘法【英文标题】:Conditional Multiplication in Pandas Python 【发布时间】:2019-07-19 16:57:27 【问题描述】:我想根据两列中的值进行条件乘法。
数据如下:
如果多头头寸不是nan,那么我想乘以远期执行价格,否则乘以空头头寸乘以远期执行价格。
我该怎么做?
【问题讨论】:
在Position Short
和Position Long
中是空字符串?还是 NaN?
在python中是NaN。当我复制它是空白的
如果两列都是NaN,输出不变或者是NaN
?
一列可以是nan,另一列会有值
【参考方案1】:
如果缺失值为NaN
s,则使用combine_first
或fillna
:
s = df['Position Long'].combine_first(df['Position Short'])
#alternative
#s = df['Position Long'].fillna(df['Position Short'])
如果两列都缺失并且需要在输出中使用NaN
:
df['new'] = df['Forward Strike Price'].mul(s)
或者如果需要原始值:
df['new'] = df['Forward Strike Price'].mul(s, fill_value=1)
【讨论】:
以上是关于Pandas Python 中的条件乘法的主要内容,如果未能解决你的问题,请参考以下文章
pandas python中的COUNTIF在具有多个条件的多列上