web-dev-qa-db-fra.com

Sorties multiples de la cellule Notebook IPython

J'exécute cette cellule dans IPython Notebook:

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

Le résultat est que je ne reçois que la sortie de teams data-frame plutôt que de salaries et de teams. Si je ne fais que lancer salaries.head(), j'obtiens le résultat pour salaries image-données, mais en exécutant l'instruction, je ne vois que la sortie de teams.head(). Comment puis-je corriger cela?

56
Lokesh

avez-vous essayé la commande display?

from IPython.display import display
display(salaries.head())
display(teams.head())
95
tglaria

Un moyen plus simple:

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

Cela vous évite d'avoir à taper à plusieurs reprises "Affichage"

Dites que la cellule contient ceci:

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

a = 1
b = 2

a
b

Ensuite, le résultat sera:

Out[1]: 1
Out[1]: 2

Si nous utilisons IPython.display.display:

from IPython.display import display

a = 1
b = 2

display(a)
display(b)

La sortie est:

1
2

Donc, la même chose, mais sans le Out[n] partie.

66
Aru Singh

IPython Notebook affiche uniquement la dernière valeur renvoyée dans une cellule. La solution la plus simple pour votre cas consiste à utiliser deux cellules.

Si vous n'avez vraiment besoin que d'une seule cellule, vous pouvez faire un bidouillage comme ceci:

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

A()

Si vous en avez souvent besoin, faites-en une fonction:

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()

Usage:

show_two_heads(salaries, teams)

Une version pour plus de deux têtes:

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)
4
Mike Müller

Fournir,

print salaries.head()
teams.head()
4
WoodChopper