首页 > 解决方案 > 创建新行并插入多重计算的最大值

问题描述

我正在尝试编写代码来帮助我的投资。我想做的是找到一家公司的多余现金

我的数据框是这样的:

df = pd.DataFrame(data=[2304009, 268860, 818937], index=['sales', 'cash', 'financial instument'], columns=['target'])

“多余现金”的公式是这样的:

max(0, 'cash' + 'financial instument' - 'sales'*0.2)

到目前为止,我能用我所有的超能力做的是:

df.loc['Excess Cash'] = df.loc['cash'] + df.loc['financial instument'] - df.loc['sales']*0.2

但我不能做最大值(0,我得到的数字)并将这个数字放在“多余现金”行中

提前致谢!

标签: pythonpandas

解决方案


用于numpy.maximum一个元素的最大值Series和标量:

s  = df.loc['cash'] + df.loc['financial instument'] - df.loc['sales']*0.2
df.loc['Excess Cash'] = np.maximum(0, s)

您可以使用另一个值对其进行测试,例如:

s  = df.loc['cash'] + df.loc['financial instument'] - df.loc['sales']*0.2
df.loc['Excess Cash'] = np.maximum(1000000, s)
print (df)
                        target
sales                2304009.0
cash                  268860.0
financial instument   818937.0
Excess Cash          1000000.0

推荐阅读