繁体   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