2015-05-14 17 views
6

Dire che ho un dizionario della dataframes:dataframes si fondono in un dizionario

{'df1': name   color type 
      Apple  Yellow Fruit, 
    'df2': name   color type 
      Banana  Red  Fruit, 
    'df3': name   color type 
      Chocolate Brown Sweet 
    ......} 

E voglio a tutti loro fondersi in uno come questo:

name   color type 
    Apple  Red  Fruit 
    Banana  Yellow Fruit 
    Chocolate Brown Sweet 

posso farlo manualmente come segue:

merge1=pd.merge('df1','df2') 
    merge2=pd.merge('merge1','df3') 
    ... 

Ma c'è un modo per comprimere automaticamente il dizionario e unire? Qualsiasi aiuto è apprezzato.

risposta

10

Si può solo passare il dict diretta e accedere al values attributo per concat:

In [233]: 

d 
Out[233]: 
{'df1':  name   color type 
0 Apple  Yellow Fruit, 'df2':  name   color type 
0 Banana  Red  Fruit, 'df3':  name   color type 
0 Chocolate Brown Sweet} 
In [234]: 

pd.concat(d.values(), ignore_index=True) 
Out[234]: 
    name   color type 
0 Banana  Red  Fruit 
1 Apple  Yellow Fruit 
2 Chocolate Brown Sweet 

Questo presuppone che si sta solo cercando di concatenare tutti i DFS, se avete intenzione di unire, allora avete bisogno di spiegare i criteri di unione sono

+0

La concatenazione funziona perché i miei dati condividono gli stessi valori e indici. Grazie mille! – qts

+0

Non riesco a usare il comando concat ... c'è un altro modo per farlo? @EdChum –

+0

@ManasJani Non rispondo alle domande nei commenti poiché è controproducente. Dovresti pubblicare una domanda che includa dati grezzi, codice per produrre il tuo dfs, l'output desiderato e ciò che hai provato – EdChum

Problemi correlati