实现递归函数执行分层计算

问题描述 投票:0回答:1

对被屠宰的标题表示歉意。

我有一个指标数据库,其中包含指标标题、指标 ID、指标缩写和指标公式等字段。指标公式指示该指标是否需要计算其他指标。例如:

指标标题 公制 ID 公制缩写 公制公式
公制A 234
公制B 567 MB
公制C 452 MC MA+MB
公制D 123 医学博士 MC*MA

我正在尝试实现一个递归函数,该函数评估度量公式是否不为空,以使用公式中的缩写来评估这些行的公式字段等等。一旦到达根节点,即度量公式为空的行,就会获取一个值并返回上一级。 有人可以为我指出研究此类算法的正确方向吗?

python pandas recursive-datastructures
1个回答
0
投票

如果我理解正确并且您想评估公式,您可以利用

pandas.eval
。构建一个缩写字典:ID,并将其作为
eval
:
 传递给 
local_dict

d = df.set_index('Metric Abbreviation')['Metric ID'].to_dict()

m = df['Metric Formula'].notna()
df.loc[m, 'Result'] = (df.loc[m, 'Metric Formula']
                         .apply(pd.eval, local_dict=d)
                      )

输出:

  Metric Title  Metric ID Metric Abbreviation Metric Formula    Result
0      MetricA        234                  MA           None       NaN
1      MetricB        567                  MB           None       NaN
2      MetricC        452                  MC          MA+MB     801.0
3      MetricD        123                  MD          MC*MA  105768.0
© www.soinside.com 2019 - 2024. All rights reserved.