Python 使用PETL从不同的列和行计算值

Python 使用PETL从不同的列和行计算值,python,etl,petl,Python,Etl,Petl,我有一张这样的桌子: +---------------+------+-----------+ | EffectiveDate | TSV | MTDReturn | +===============+======+===========+ | '1994-01-30' | 100 | 0.04 | +---------------+------+-----------+ | '1995-02-28' | None | 0.02 | +---------------+

我有一张这样的桌子:

+---------------+------+-----------+
| EffectiveDate | TSV  | MTDReturn |
+===============+======+===========+
| '1994-01-30'  |  100 |      0.04 |
+---------------+------+-----------+
| '1995-02-28'  | None |      0.02 |
+---------------+------+-----------+
| '1992-03-31'  | None |      0.01 |
+---------------+------+-----------+
| '1974-08-30'  | None |      0.06 |
+---------------+------+-----------+
我正在使用
PETL
库来尝试填充
TSV
值。我可以通过将表分解成一个dict列表并对其进行操作来实现这一点,但我被要求仅使用
PETL
来实现

公式非常简单:
TSV=previousTSV*(1+MTDReturn)

我已经研究了
聚合
,但是没有什么可以对它们进行分组


也许我可以加入一个表,该表有一列
previousTSV

这看起来非常适合。这将使用接收前一行(第一行无)的函数添加列值。我猜您会使用类似于:

def calculate_tsv(prv, cur, nxt):
    if prv is not None:
        return prv.TSV * (1 + cur.MTDReturn)

etl.addfieldusingcontext(table1, 'TSV', calculate_tsv)

您是否会包括您的源代码和一些输入数据(如果使用github的话),以便我们可以进行修补?@Splatmistro:问题应该是最小的、完整的和可验证的,链接没有帮助