Python 将数据帧单元格转换为函数输入
我有一个数据帧df,它包含不同变量(V1、V2等)的概率分布: 要从数据帧中选择“V1”Beta的分布,并将其存储在命名字符串中,我执行以下操作: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
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/fnWeb搜索如何在python模块中按函数名查找函数,或签出
V1_obs = fn_dict[variable]('V1_obs', mu=mu, sigma=sigma, observed=V1)