簡體   English   中英

在一個循環中生成多個 pandas 數據幀,帶有變量變量名稱

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM