2016-04-01 11 views
1

Es gibt eine Liste.Was ist die analoge Funktion für aasign() von R in Python?

stud = ['mark', 'kael', 'joey', 'ash'] 

Ich möchte jedem Element in der Stud-Liste einen Datenrahmen zuweisen. (macht jedes Element in der Liste als Variablenname) für zB.

mark = dataframe1 
kael = dataframe2 
joey = dataframe3 
ash = dataframe4 

Ich weiß, wir können dies in R mit Assign() -Funktion tun. Wie können wir das in Python erreichen?

+0

von datafrane hier meinen Sie Pandas Datenrahmen ?? –

+0

Beachten Sie, dass dies in R möglich ist, aber es gibt normalerweise keinen Grund, dies tatsächlich zu tun. – Roland

Antwort

0

Ich würde exec() verwenden, um Variablennamen aus Strings zuzuweisen. Etwas wie folgt aus:

dataframe1,dataframe2,dataframe3,dataframe4 = {'a'},{'b'},{'c'},{'d'} 
stud = ['mark', 'kael', 'joey', 'ash'] 
dfs = [dataframe1,dataframe2,dataframe3,dataframe4] 

for v,d in zip(stud,dfs): 
    exec('{}={}'.format(v,d)) 

>>> mark 
{'a'} 

Mit Dataframe Sie dfs aus einer Liste von Objekten zu einer Liste von Strings ändern müssen:

from pandas import DataFrame 
import numpy as np 

dataframe1,dataframe2,dataframe3,dataframe4 = DataFrame(np.random.randn(10, 5)),DataFrame(np.random.randn(10, 5)),DataFrame(np.random.randn(10, 5)),DataFrame(np.random.randn(10, 5)) 

stud = ['mark', 'kael', 'joey', 'ash'] 
dfs = ['dataframe1','dataframe2','dataframe3','dataframe4'] 

for v,d in zip(stud,dfs): 
    exec('{}={}'.format(v,d)) 
+0

{'a'} ist ein Satz und ich möchte einen Datenrahmen geben. Wenn ich Daten in ** dfs ** übergebe, bekomme ich einen Syntaxfehler. –

+0

Dann übergeben Sie den Namen des Datenrahmens als String in dfs 'dfs = ['Dataframe1', 'Dataframe2', 'Dataframe3', 'Dataframe4']' –