![](/img/trans.png)
[英]Melting pandas data frame with multiple variable names and multiple value names
[英]Generating multiple pandas data frames within a loop, with variable variable names
我正在嘗試在一個循環中生成多個 pandas 數據幀,但我在變量定義方面遇到了困難。 str(test[i-1])
的第一次迭代返回A
,所以我假設我可以將此字符串與另一個字符串連接以創建一個變量,第一個變量應定義為A_data_columns=['Test1','Test2']
但是這會引發一個錯誤(我有一半的預期),我只是想知道是否有辦法正確地做到這一點,或者可能是更好的方法?
test=[]
for i in range(1,5):
test.append(chr(ord('@')+i))
str(test[i-1])+'_data_columns'=['Test1', 'Test2']
str(test[i-1])+'_dataframe'=pd.DataFrame(columns=str(test[i-1])+'_data_columns')
str(test[i-1])+'_dataframe'
錯誤:
SyntaxError: cannot assign to operator
str(test[i-1])+'_data_columns'
是一個字符串,而不是變量名。 您不能為字符串分配值,這沒有任何意義。
解決這個問題的一種方法是使用字典。 通過這種方式,您可以將 map 字符串轉換為 object,這就是您要執行的操作。
test=[]
test_dict = dict()
for i in range(1,5):
test.append(chr(ord('@')+i))
test_dict[str(test[i-1])+'_data_columns'] = ['Test1', 'Test2']
test_dict[str(test[i-1])+'_dataframe'] = pd.DataFrame(columns=str(test[i-1])+'_data_columns')
然后,您可以按如下方式訪問這些值:
print(test_dict['A_data_columns'])
# should print ['Test1', 'Test2']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.