擅长:python、mysql、java
<p>以下内容似乎适用于示例数据。你应该再检查一下。其思想是计算成本和付款的累计(<code>cumsum</code>)。然后您可以对它们进行越来越多的排序,并尝试相应地传播<code>Payment</code>和<code>Project</code></p>
<pre><code>project_cost['accum'] = project_cost['Cost'].cumsum()
payment['accum'] = payment['Value'].cumsum()
(payment.merge(project_cost, on='accum', how='outer')
.sort_values('accum')
.bfill()
)
</code></pre>
<p>输出:</p>
<pre><code> Payment Value accum Project Cost
0 payment1 100.0 100 Project1 200.0
3 payment2 200.0 200 Project1 200.0
1 payment2 200.0 300 Project2 300.0
4 payment3 300.0 500 Project2 300.0
2 payment3 300.0 600 Project3 400.0
5 NaN NaN 900 Project3 400.0
</code></pre>