Pandas Python 中的条件乘法

Posted

技术标签:

【中文标题】Pandas Python 中的条件乘法【英文标题】:Conditional Multiplication in Pandas Python 【发布时间】:2019-07-19 16:57:27 【问题描述】:

我想根据两列中的值进行条件乘法。

数据如下:

如果多头头寸不是nan,那么我想乘以远期执行价格,否则乘以空头头寸乘以远期执行价格。

我该怎么做?

【问题讨论】:

Position ShortPosition Long 中是空字符串?还是 NaN? 在python中是NaN。当我复制它是空白的 如果两列都是NaN,输出不变或者是NaN? 一列可以是nan,另一列会有值 【参考方案1】:

如果缺失值为NaNs,则使用combine_firstfillna

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 中的条件乘法的主要内容,如果未能解决你的问题,请参考以下文章

python / pandas中的条件聚合

Python pandas - >按列名中的条件选择

pandas python中的COUNTIF在具有多个条件的多列上

Python Pandas 条件无法准确识别行

Python Pandas根据多个其他列中的条件替换一列中的值[重复]

如何在 python Pandas 中执行/解决条件连接?