擅长:python、mysql、java
<p>如果我理解正确的话,您需要按顺序更新各种变量,因为每个值都依赖于前一个值。在这种情况下,我看不到比逐行操作更好的方法:</p>
<pre class="lang-py prettyprint-override"><code># starting with your original df, not repeated here
for row in range(1, len(df)):
df.loc[row, 'Cap'] = df.Total[row - 1]
df.loc[row, 'Invest'] = df.Kelly[row] * df.Cap[row]
df.loc[row, 'Net'] = df.Odds[row] * df.Invest[row]
df.loc[row, 'Total'] = df.Cap[row] + df.Net[row]
df
</code></pre>
<pre class="lang-py prettyprint-override"><code> Probability Odds Cap Kelly Invest Net Total
0 0.3 5 1000.0 0.160 160.0 800.0 1800.0
1 0.4 1 1800.0 -0.200 -360.0 -360.0 1440.0
2 0.5 4 1440.0 0.375 540.0 2160.0 3600.0
</code></pre>
<p>然而,请注意,这并没有产生与您所期望的数据帧相同的数据帧,因此,可能我仍然误解了某些东西</p>