计算不存储在数据帧中,但在prin上工作

2024-06-16 11:49:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下计算:
np.maximum(0, np.prod([perf_asset, calc_arr['val']]) - amt_payout - np.prod([exposure, calc_arr['delta_1']]))

如果写出来,这将是:

MAX(0, 0.8 × 105.015038 - 80 - TRUE × 5.3135)
MAX(0, 84.0120307692 - 80 - 5.3135)
= 0

如果我打印此文件,输出实际上可以工作,但如果我想将其存储在数据帧中,则不会: calc_arr['added_amt'] = np.maximum(0, np.prod([perf_asset, calc_arr['val']]) - amt_payout - np.prod([exposure, calc_arr['delta_1']]))

计算突然停止了。在此之前,我甚至不必使用np.prodnp.sum。老实说,我完全糊涂了

完整循环:

j = 1
for i in [0.0627,0.0627,0.0627,0.0627,0.0627,0.0627,0.0627,0.0627,0.0627,0.0627,0.0627,0.0627,0.0627,0.0627,0.0627,-0.053,-0.0698,-0.1011,-0.1767,-0.6271,-0.6271,-0.6271,-0.6271,-0.6271,-0.6271,-0.6271,-0.6271,-0.6271,-0.6271,-0.6271]:
    risky_return = i
    risk_free_return = (-0.0125/260)

    stock_val = stock_calc(j, stock_val['amt_payout'], stock_val['alloc_risky'], stock_val['alloc_risk_free'], stock_val['delta_1'], risky_return, risk_free_return)
    stock_vals = stock_vals.append(stock_val)
    j = j + 1

并且calc_arr['val']被检索:

calc_arr['val'] = np.sum([np.prod([(1 + perf_risky), alloc_risky]), np.prod([(1 + perf_risk_free), alloc_risk_free])])

Tags: freereturnstocknpcalcvalprodperf
1条回答
网友
1楼 · 发布于 2024-06-16 11:49:29

我认为您需要append值来list-stock_vals,然后将其分配给列:

stock_vals = []
for i in [0.0627,0.0627,0.0627,0.0627,0.0627,0.0627,0.0627,0.0627,0.0627,0.0627,0.0627,0.0627,0.0627,0.0627,0.0627,-0.053,-0.0698,-0.1011,-0.1767,-0.6271,-0.6271,-0.6271,-0.6271,-0.6271,-0.6271,-0.6271,-0.6271,-0.6271,-0.6271,-0.6271]:
    risky_return = i
    risk_free_return = (-0.0125/260)

    stock_val = stock_calc(j, stock_val['amt_payout'], stock_val['alloc_risky'], stock_val['alloc_risk_free'], stock_val['delta_1'], risky_return, risk_free_return)
    stock_vals.append(stock_val)


calc_arr['val'] = stock_vals

我尝试将其重写以列出理解:

L = [0.0627,0.0627,0.0627,0.0627,0.0627,0.0627,0.0627,0.0627,0.0627,0.0627,0.0627,0.0627,0.0627,0.0627,0.0627,-0.053,-0.0698,-0.1011,-0.1767,-0.6271,-0.6271,-0.6271,-0.6271,-0.6271,-0.6271,-0.6271,-0.6271,-0.6271,-0.6271,-0.6271]

calc_arr['val'] = [stock_vals.append(stock_calc(j, stock_val['amt_payout'], stock_val['alloc_risky'], stock_val['alloc_risk_free'], stock_val['delta_1'], risky_return, (-0.0125/260))) for risky_return in L]

相关问题 更多 >