![](/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.