Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将数据帧单元格转换为函数输入_Python_Pandas_String_Pymc3 - Fatal编程技术网

Python 将数据帧单元格转换为函数输入

Python 将数据帧单元格转换为函数输入,python,pandas,string,pymc3,Python,Pandas,String,Pymc3,我有一个数据帧df,它包含不同变量(V1、V2等)的概率分布: 要从数据帧中选择“V1”Beta的分布,并将其存储在命名字符串中,我执行以下操作: variable = df.loc["V1"][0] 这会将分发名称存储为名为“variable”的字符串 我想使用存储在公式“variable”中的分发名称: V1_obs = pm.Beta('V1_obs', mu=mu, sigma=sigma, observed=V1) 如果我试图用“变量”替换分发名称,如下所示: V1_obs = p

我有一个数据帧df,它包含不同变量(V1、V2等)的概率分布:

要从数据帧中选择“V1”Beta的分布,并将其存储在命名字符串中,我执行以下操作:

variable = df.loc["V1"][0]
这会将分发名称存储为名为“variable”的字符串

我想使用存储在公式“variable”中的分发名称:

V1_obs = pm.Beta('V1_obs', mu=mu, sigma=sigma, observed=V1)
如果我试图用“变量”替换分发名称,如下所示:

V1_obs = pm.variable('V1_obs', mu=mu, sigma=sigma, observed=V1)

它表示模块没有名为“variable”的函数。有人知道如何让“variable”在函数中工作吗?

现在,当您执行pm.variable时,python会在模块“pm”中查找名为“variable”的对象。您希望模块查找与“变量”值同名的对应对象/函数

您可以将变量名保存到类似dict的函数映射中

fn_dict = {'Beta':pm.Beta, 'Gamma':pm.Gamma}
然后试着

V1_obs = fn_dict[variable]('V1_obs', mu=mu, sigma=sigma, observed=V1)

这应该行得通。在dict中查找“variable”时,它将从模块返回相应的object/fn

Web搜索如何在python模块中按函数名查找函数,或签出
V1_obs = fn_dict[variable]('V1_obs', mu=mu, sigma=sigma, observed=V1)