2016-06-27 19 views
-1

umbenennen Ich versuche Datensätze dynamisch zu erstellen:dynamisch Datenrahmen in Python

def CreateDF (indsn, outdsn): 
    outdsn = pd.DataFrame(indsn) 
    .... 
    return outdsn 

CreateDF (phase_df, phase_df2) 

Aber es funktioniert nicht, bekomme ich folgende Fehlermeldung:

NameError: name 'phase_df2' is not defined

Lage zu sein, die oben zu tun könnte nützlich sein, weil ich auch eine Liste von Datasets durchlaufen konnte (für jeden Datensatz in der Liste), aber ich bin mir nicht sicher, wie ich sie dynamisch umbenennen könnte.

+2

Fehler ist ziemlich klar, was ist 'phase_df2' hier als Ihr Code-Snippet zeigt nicht, wo dies erklärt wird – EdChum

+1

Sie müssen eine [MCVE] (http://stackoverflow.com/help/mcve), Ihren Code zeigen hat nichts mit dem Fehler zu tun, den Sie bekommen. –

+2

Nun, dieser Fehler hat nichts mit Ihrer Funktion zu tun. Es bedeutet nur, dass Sie phase2_df – SAMO

Antwort

0

Initialise df:

df= pd.DataFrame(index=range(0,4),columns=['A','B','C','D'], dtype='object') 

dynamisch hinzufügen:

for values in values_np 
    df.set_value([iterator, 'A', values) 
    iterator += 1 

Auf diese Weise können dynamisch Reihe weise

1

Es ist ein wenig spärlich hinzufügen können, weil Sie uns nicht geben Informationen darüber, warum Dies muss geschehen, oder wie Ihr Quellmaterial aussieht, aber die allgemeine Idee ist:

def make_df(name): 
    ... 
    return df 

dict_of_dfs = dict() 
df_names = []  #a list of all the dataframes you want to create 

for name in df_names: 
    dict_of_dfs[name] = make_df(name) 

Jetzt können Sie anstelle von Variablen Wörterbucheinträge als Schlüssel benennen und jeder Wert ist der Datenrahmen.