擅长:python、mysql、java
<p>这是一个有点冗长,但可以作为一个不错的草案,你正在努力实现。它假设日期可以比较(因此它们存储为<code>datetime</code>而不是字符串)。在</p>
<pre><code>condition = volumes['Date'] <= volumes['BeforeDate']
# Before
volumes.loc[(condition) & (volumes['Before'] == 'Prod'),
'totals_before'] = volumes['Oil'] + volumes['Water']
volumes.loc[(condition) & (volumes['Before'] == 'Inj'),
'totals_before'] = volumes['Inject']
# After
volumes.loc[(~condition) & (volumes['Before'] == 'Prod'),
'totals_after'] = volumes['Oil'] + volumes['Water']
volumes.loc[(~condition) & (volumes['Before'] == 'Inj'),
'totals_after'] = volumes['Inject']
volumes = volumes.sort_values(by=['WellName', 'Date'])
volumes['totals_before'] = volumes['totals_before'].fillna(method='ffill')
volumes['new_Tots'] = volumes['totals_before'] + volumes['totals_after'].fillna(0)
</code></pre>
<p>哪些输出:</p>
^{pr2}$
<p>如果以下假设是正确的,这一点可以大大简化:当注入填充时,油柱和水柱始终为空,反之亦然。在</p>