首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PETL计算来自不同列和不同行的值

使用PETL计算来自不同列和不同行的值
EN

Stack Overflow用户
提问于 2018-06-14 23:19:43
回答 1查看 58关注 0票数 0

我有一个表,看起来像这样:

代码语言:javascript
复制
+---------------+------+-----------+
| 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值。我可以通过将表分解为一个字典列表并对其进行操作来实现这一点,但我被要求只能使用PETL来完成这项工作。

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

我已经调查了aggregation,但没有任何东西可以将它们分组。

也许我可以连接一个包含previousTSV列的表

EN

回答 1

Stack Overflow用户

发布于 2019-06-18 23:17:28

这看起来很适合addfieldusingcontext。这将使用接收前一行的函数添加列值(第一行为None)。我猜你可能会用到这样的东西:

代码语言:javascript
复制
def calculate_tsv(prv, cur, nxt):
    if prv is not None:
        return prv.TSV * (1 + cur.MTDReturn)

etl.addfieldusingcontext(table1, 'TSV', calculate_tsv)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50860896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档