python-3.x - Python 3:将函数参数解析为字符串
问题描述
我有一个需要几个参数的函数。其中一个参数是指数据框。现在我想将此参数用作数据框(我很容易做到)和字符串(我只是做不到)。我的意思是字符串,我想将数据框的名称用作字符串。
def get_avg_spectrum(full_signal, fs, skip_samples = 0,...):
code...
...
...
return output
result = get_avg_spectrum(full_signal = acc_x_g, fs = 5000, skip_samples = 0,...)
这里,“acc_x_g”指的是 Pandas 系列。所以我想使用整个系列以及文本“acc_x_g”。
# the below doesn't work
full_signal.name
Out[104]: 'ACC'
# ACC is the name of the variable in the Pandas Series "acc_x_g"
我有很多系列要运行这个函数,所以我的想法是简单地改变函数中的“full_signal = xxx”参数。谁能帮忙解决这个问题。
解决方案
基于这个答案(和一些测试),这听起来不可能(在你的例子中,链接答案中的代码返回 ["full_spectrum"] 作为名称而不是所需的 ["acc_x_g"])。
但是,一种可能性是传递带有名称而不是对象的字符串。我不确定你的代码是如何设置的,但这样的事情会起作用。
def get_avg_spectrum(full_signal, fs, skip_samples = 0,...):
name = full_signal
df = eval(full_signal)
...
return(output)
result = get_avg_spectrum(full_signal = "acc_x_g", fs = 5000, skip_samples = 0,...)
编辑:如有必要,您可以将这两个(链接的答案以及我在上面发布的内容)结合起来。同样,这取决于您的对象是如何创建的,等等。但是创建一些对象,循环它们以获取它们的名称,将名称传递给函数......它很复杂,但它可以工作。
推荐阅读
- c - 将包含二进制秘密消息的 .out 文件解码回英文
- r - 在 R 中将 alt 文本标签添加到 slickR 轮播
- bot-framework-composer - 在 Bot Framework Composer turn.recognized.Intents 中只包含一个意图
- php - 如何通过for或while将json数组放入数据库?
- cygwin - 配置 autoconf 2.69 和 wget 1.12 失败
- c++ - (光线追踪)无法转换为屏幕坐标,物体被拉伸
- typescript - 数据输入后每 1 小时时间戳和自动锁定
- javascript - 如何根据 React 中并行组件的操作更改组件的状态(使用 React Router)?
- reporting-services - 如何将 Google Analytics 标签添加到 SSRS 报告
- linear-programming - 线性规划 - 问题 - Python Gekko