【发布时间】:2012-02-24 19:39:14
【问题描述】:
我有一个字典列表,例如:
l =[{country:'Italy',sales:100,cost:50}{country:'Italy',sales:130,cost:60}
{country:'Germany',sales:110,cost:50}]
我想要一个 python 函数,它采用类似电子表格的输入 string(请从下面的@lott 中读取 cmets)公式,例如:
margin = (sales-cost)/sales
它还给了我:
l = [{country:'Italy',sales:100,cost:50,margin:1} ...]
您知道现有的任何这样做的库吗?或者您知道如何实现它?
我已经有了一个想法,如下所示,但我想要一种更好的方法来解析公式。处理 '()' 等中的块的东西。
parsed_op = {'sales':1,'cost':-1}
calc_field_name = 'smi'
counter = -1
for d in data:
counter = counter + 1
calc = sum([float(d[item])*parsed_op[item] for item in parsed_op])
d[calc_field_name] = calc
del data[counter]
data.append(d)
【问题讨论】:
-
此类事物的现有库:pandas.
-
熊猫对于我需要的东西来说太复杂和太大了。
标签: python excel parsing formula