Pandas 将列表中的数据帧分配给名称列表;熊猫

Pandas 将列表中的数据帧分配给名称列表;熊猫,pandas,dataframe,Pandas,Dataframe,我有一个变量 var=[name1,name2] 我在列表中也有一个数据帧 df= [df1, df2] 如何将df1分配给name1,将df2分配给name2,依此类推。如果我理解正确,假设两个列表的长度相同,您只需迭代两个列表的索引并分配它们,例如: In [412]: name1,name2 = None,None var=[name1,name2] df1, df2 = 1,2 df= [df1, df2] ​ for x in range(len(var)): var[x]

我有一个变量

var=[name1,name2]
我在列表中也有一个数据帧

df= [df1, df2]

如何将df1分配给name1,将df2分配给name2,依此类推。

如果我理解正确,假设两个列表的长度相同,您只需迭代两个列表的索引并分配它们,例如:

In [412]:
name1,name2 = None,None
var=[name1,name2]
df1, df2 = 1,2
df= [df1, df2]
​
for x in range(len(var)):
    var[x] = df[x]
var

Out[412]:
[1, 2]
如果变量列表存储字符串,则我不会从这些字符串中生成变量(请参阅),而是创建一个dict:

In [414]:
var=['name1','name2']
df1, df2 = 1,2
df= [df1, df2]
d = dict(zip(var,df))
d

Out[414]:
{'name1': 1, 'name2': 2}

要回答您的问题,您可以通过以下方式进行:

for i in zip(var, df):
     globals()[i[0]] = i[1]
然后访问变量。
但这样做是不好的。你就像在你的全球环境中放养一只狗。最好控制您处理的内容,将数据帧保存在列表或字典中。

var=['name1','name2']包含字符串。我们是否仍在重复列表。很抱歉没有包含前面的字符串和df1=m*n矩阵。是否要从字符串名称生成变量?另外,我的代码只是演示了如何迭代两个列表,并用另一个列表覆盖其中一个列表的内容。我还建议您使用dict来实现您想要的:当您说
m*n matrix
这意味着什么,这是数组吗?