2016-07-22 61 views
0

作为代码的一部分,我需要将一个数据框分配给在此过程中创建的动态变量。如何将数据框分配给动态变量为python?

我做了如下分配价值研究:

I = 1 
x = 'varName'+str(I) 
exec("%s = %d" % (x,2)) 

varName1 

但如何做到这一点的数据帧?

感谢

+0

python 2.7? 3.X?你应该看看dict的,我不是一个对evals和execs的忠实粉丝,它让代码难以理解,我相信这不是一个好习惯。字典可能正是你想要的,它本质上是一个哈希表,它允许你为键值赋值{key:value},或者在你的情况下为一个DataFrame赋一个名称的字符串。你可以添加一点点更多的解释,你正试图用一个不太概念和更实用的代码示例来解决问题本身。 – nico

回答

0

“动态变量” 是一个反模式。你想要的是无论是dict

vars = {} 
key = "something_%s" % another_string 
vars[key] = something() 

或(更可能是因为你似乎可以用一些数字指标):

vars = [] 
for whatever in (some_sequence): 
    val = something(whatever) 
    vars.append(val) 

这FWIW可以更简单地改写为:

vars = [something(whatever) for whatever in some_sequence]