2016-04-07 12 views
1

ich mehrere Datenrahmen haben, die alle die gleichen Spalten haben:anhängen Datenrahmen und leere Variable

df_list = [df1,df2,df3,dfn] 

Und ich möchte diejenigen, auf einen neuen Datenrahmen anzuhängen, wenn eine bestimmte Bedingung erfüllt ist.

for df in df_list: 
    if some_condition: 
      new_df.append(df) 

Aber das didn; t Arbeit, so versuche ich dies:

new_df = pd.DataFrame() 
for column in df1.columns: 
    new_df[column] = [] 

Und nur den Zweck zu testen es:

new_df.append(df1) 

aber new_df es ist immer noch leer.

Es funktioniert nur, wenn ich es zuweisen explicity

new_df = new_df.append(df1) 

Antwort

2

Ich glaube, Sie auf neue Liste anhängen müssen dfs und dann concat:

dfs = [] 
for df in df_list: 
    if some_condition: 
      dfs.append(df) 

print pd.concat(dfs) 
+0

Haben Sie eine Ahnung von Art und Weise new_df.append haben (df1) hält new_df empy? –

+0

Ich denke, weil [append'] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.append.html) funktioniert nicht inplace - 'ein neues Objekt zurückgeben' – jezrael

+0

Ich dachte es war wie in einer Liste. –

Verwandte Themen