首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python中使用字符串作为函数方法?

如何在python中使用字符串作为函数方法?
EN

Stack Overflow用户
提问于 2019-06-07 15:48:53
回答 1查看 137关注 0票数 0

您好,我使用的是python,我有一个如下的dataframe (df):

代码语言:javascript
复制
        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

代码语言:javascript
复制
for i,v in df[1:].iterrows():
    dispatcher={v["calculators"]:eval(str(fc.v["calculators"]))}
    t = eval(v["calculators"],dispatcher)
    print(t)

但是我得到了以下错误

代码语言:javascript
复制
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,但徒劳无功。请推荐一些方法。如果我强调不足/过度强调了什么,请在评论中告诉我。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-07 16:07:57

我认为您必须尝试像这样导入:

from tsfresh.feature_extraction.feature_calculators import abs_energy,absolute_sum_of_changes,agg_autocorrelation

然后像这样在eval中使用它:

eval(str(v["calculators"]))

解决方案2

或者,您可以将DataFrame中的数据更改为类似于fc.abs_energy而不是abs_energy,并在不更改的情况下导入模块:

from tsfresh.feature_extraction import feature_calculators as fc

注意事项

不要忘记将()连接到字符串以调用所需的函数。例如,您必须像这样调用abs_energy函数:

eval('abs_energy()')

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56490101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档