user2819398
user2819398

Reputation: 85

Assign dataframes in a list to a list of names; pandas

I have a variable

var=[name1,name2]

I have a dataframe also in a list

df= [df1, df2]

How do i assign df1 to name1 and df2 to name2 and so on.

Upvotes: 3

Views: 640

Answers (2)

EdChum
EdChum

Reputation: 393933

If I understand correctly, assuming the lengths of both lists are the same you just iterate over the indices of both lists and just assign them, example:

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]

If your variable list is storing strings then I would not make variables from those strings (see How do I create a variable number of variables?) and instead create a 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}

Upvotes: 1

Colonel Beauvel
Colonel Beauvel

Reputation: 31161

To answer your question, you can do this by:

for i in zip(var, df):
     globals()[i[0]] = i[1]

And then access your variables. But proceeding this way is bad. You're like launching a dog in your global environment. It's better to keep control about what you handle, keep your dataframe in a list or dictionary.

Upvotes: 0

Related Questions