【发布时间】:2019-06-07 07:48:52
【问题描述】:
您好,我正在使用 python,并且有一个数据框 (df),如下所示:
c param_values
0 abs_energy NaN
1 absolute_sum_of_changes NaN
2 agg_autocorrelation [{'f_agg': 'median', 'maxlag': 40}, {'f_agg': ...
3 agg_linear_trend [{'f_agg': 'max', 'chunk_len': 5, 'attr': 'int...
4 approximate_entropy [{'m': 2, 'r': 0.3}, {'m': 2, 'r': 0.1}, {'m':...
我正在迭代上面的数据框如下:
我有一个导入 from tsfresh.feature_extraction import feature_calculators as fc
for i,v in df[1:].iterrows():
dispatcher={v["calculators"]:eval(str(fc.v["calculators"]))}
t = eval(v["calculators"],dispatcher)
print(t)
但我收到以下错误
AttributeError: module 'tsfresh.feature_extraction.feature_calculators' has no attribute 'v'
我想评估fc.abs_energy,fc.absolute_sum_of_changes,fc.agg_autocorrelation('median','40') 等。
我怎样才能通过迭代上面的数据框找到这个。我曾尝试使用 eval 如上所示,但徒劳无功。请提出一些方法。如果我强调/过分强调某事,请在 cmets 中告诉我。谢谢
【问题讨论】:
-
该错误是由
fc.v["calculators"])引起的 -feature_calculators没有名为v的属性。由于您没有在其他引用前面加上v- 您是否打算在那里使用它?您也可以使用getattr从字符串中查找属性,因此fn = getattr(<module>, v['calculators'])应该为您提供函数本身的引用,您可以在不使用eval的情况下调用该函数。
标签: python function methods eval