2016-07-22 85 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]