0
我正在尝试为现有的熊猫数据框指定一个新列mydf
。要添加的系列是评估以字符串形式传递的表达式的结果。该表达式可以包含蟒功能调用,例如:在带有时间序列数据和分组的熊猫中使用指定
formula = 'myfunction(mydf.v1)'
myfunction
是如下
def myfunction(series):
return recursive_filter(series, 0.1)
下面的代码将计算表达式并执行myfunction
和列v2
分配给mydf
mydf.assign(v2 = eval(formula))
但是,我需要执行该功能Market
。输出应该看起来像见下表
Market Date v1 v2
UK 2013-01-01 10 10.00
UK 2013-01-02 10 11.00
UK 2013-01-03 10 11.10
UK 2013-01-04 10 11.11
US 2013-01-01 10 10.00
US 2013-01-02 10 11.00
US 2013-01-03 10 11.10
US 2013-01-04 10 11.11
我尝试下面的代码(我不知道会产生正确的结果......)
mydf.groupby('CrossSection').apply(mydf.assign(v2 = eval(formula)))
然而,这会产生这个错误
TypeError: 'DataFrame' objects are mutable, thus they cannot be hashed