首页 > 解决方案 > 用petl将一个值插入一行?

问题描述

我正在使用 petl 并试图弄清楚如何将值插入特定行。

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

+----------------+---------+------------+
| Cambridge Data | IRR     | Price List |
+================+=========+============+
| '3/31/1989'    | '4.37%' |            |
+----------------+---------+------------+
| '4/30/1989'    | '5.35%' |            |
+----------------+---------+------------+ 

我想将价目表设置为100Cambridge Data 所在的行4/30/1989。这是我到目前为止所拥有的:

def insert_initial_price(self, table):
    import petl as etl
    initial_price_row = etl.select(table, 'Cambridge Data', lambda v: v == '3/31/1989')

这选择了我需要插入的行100,但我不确定如何插入它。petl似乎没有“插入值”功能。

标签: pythonpetl

解决方案


我建议不要使用select.

要更新字段的值,请使用convert.

请参阅包含许多示例的文档:https ://petl.readthedocs.io/en/stable/transform.html#petl.transform.conversions.convert

我还没有测试过,但这应该可以解决它:

import petl as etl
table2 = etl.convert(
    table,
    'Price List',
    100,
    where = lambda rec: rec["Cambridge Data"] == '4/30/1989',
)

推荐阅读