2015-12-21 12 views
21

sto facendo funzionare questa cella in IPython Notebook:ipython cellulari Notebook uscite multiple

# salaries and teams are Pandas dataframe 
salaries.head() 
teams.head() 

Il risultato è che sto ottenendo soltanto l'uscita del teams dati frame piuttosto che sia salaries e teams. Se eseguo semplicemente salaries.head() ottengo il risultato per il data-frame salaries ma nell'esecuzione di entrambe le istruzioni vedo solo l'output di teams.head(). Come posso correggere questo?

risposta

45

avete provato il comando display?

from IPython.display import display 
display(salaries.head()) 
display(teams.head()) 
+0

Wow ... Molto bello. Ha funzionato esattamente come volevo. – Lokesh

+1

Davvero molto bello. –

+0

Proprio quello che stavo cercando - grazie !! – saml

3

Notebook IPython mostra solo l'ultimo valore restituito in una cella. La soluzione più semplice per il tuo caso è utilizzare due celle.

Se si ha realmente bisogno solo una cella che si potrebbe fare un hack come questo:

class A: 
    def _repr_html_(self): 
     return salaries.head()._repr_html_() + '</br>' + teams.head()._repr_html_() 

A() 

Se avete bisogno di questo, spesso, ne fanno una funzione:

def show_two_heads(df1, df2, n=5): 
    class A: 
     def _repr_html_(self): 
      return df1.head(n)._repr_html_() + '</br>' + df2.head(n)._repr_html_() 
    return A() 

Uso:

show_two_heads(salaries, teams) 

Una versione per più di due teste:

def show_many_heads(*dfs, n=5): 
    class A: 
     def _repr_html_(self): 
      return '</br>'.join(df.head(n)._repr_html_() for df in dfs) 
    return A() 

Usage:

show_many_heads(salaries, teams, df1, df2) 
1

Fornire,

print salaries.head() 
teams.head() 
+1

Bello ma output di 'salaries.head print()' non è ben formattato. – Lokesh

25

Un modo più semplice:

from IPython.core.interactiveshell import InteractiveShell 
InteractiveShell.ast_node_interactivity = "all" 

Si evita di dover ripetutamente digitare "Display"

+0

È nuovo? Non ricordo di aver visto questa opzione un paio di anni fa. – tglaria

+0

Non lo vedo nemmeno nella documentazione aggiornata: http://ipython.readthedocs.io/en/stable/api/generated/IPython.core.interactiveshell.html#IPython.core.interactiveshell.InteractiveShell Ma è sulle opzioni IPython "Terminal": http://ipython.readthedocs.io/en/stable/config/options/terminal.html – tglaria

+1

Oh uomo, vorrei poter rispondere. Ricordo di averlo visto su una domanda diversa mesi fa (vorrei poterlo trovare) e ha funzionato perfettamente per me, così l'ho tenuto nella tasca posteriore. –