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:问题应该是最小的、完整的和可验证的,链接没有帮助