Ich führe diese Zelle in IPython Notebook aus:
# salaries and teams are Pandas dataframe
salaries.head()
teams.head()
Das Ergebnis ist, dass ich nur die Ausgabe des teams
Datenrahmens und nicht von beiden salaries
und erhalte teams
. Wenn ich nur starte, salaries.head()
erhalte ich das Ergebnis für salaries
den Datenrahmen, aber wenn ich beide Anweisungen ausführe, sehe ich nur die Ausgabe von teams.head()
. Wie kann ich das korrigieren?
pandas
jupyter-notebook
ipython
Lokesh
quelle
quelle
Antworten:
Hast du den
display
Befehl ausprobiert ?from IPython.display import display display(salaries.head()) display(teams.head())
quelle
display()
dem Benutzer automatisch ohne Import zur Verfügung gestellt werden."from IPython.display import display
Ein einfacher Weg:
from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity = "all"
Sie müssen nicht wiederholt "Display" eingeben.
Angenommen, die Zelle enthält Folgendes:
from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity = "all" a = 1 b = 2 a b
Dann wird die Ausgabe sein:
Out[1]: 1 Out[1]: 2
Wenn wir verwenden
IPython.display.display
:from IPython.display import display a = 1 b = 2 display(a) display(b)
Die Ausgabe ist:
1 2
Also das Gleiche, aber ohne das
Out[n]
Teil.quelle
get_ipython().ast_node_interactivity = 'all'
die class -Eigenschaft verwenden und nicht durch eine konstante Zeichenfolge ersetzen!Zur Verfügung stellen,
print salaries.head() teams.head()
quelle
print salaries.head()
ist nicht gut formatiert.IPython Notebook zeigt nur den letzten Rückgabewert in einer Zelle an. Die einfachste Lösung für Ihren Fall besteht darin, zwei Zellen zu verwenden.
Wenn Sie wirklich nur eine Zelle benötigen, können Sie einen Hack wie diesen ausführen :
class A: def _repr_html_(self): return salaries.head()._repr_html_() + '</br>' + teams.head()._repr_html_() A()
Wenn Sie dies häufig benötigen, machen Sie es zu einer Funktion:
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()
Verwendung:
Eine Version für mehr als zwei Köpfe:
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()
Verwendung:
quelle
Alle Lösungen auflisten:
sys.displayhook(value)
, in die sich IPython / Jupyter einhakt. Beachten Sie, dass sich dies etwas anders verhältdisplay
als das Aufrufen , da es denOut[n]
Text enthält. Dies funktioniert auch in normalem Python!display(value)
, wie in dieser Antwortget_ipython().ast_node_interactivity = 'all'
. Dies ist ähnlich, aber besser als der Ansatz dieser Antwort .Vergleichen Sie diese in einer interaktiven Sitzung:
In [1]: import sys In [2]: display(1) # appears without Out ...: sys.displayhook(2) # appears with Out ...: 3 # missing ...: 4 # appears with Out 1 Out[2]: 2 Out[2]: 4 In [3]: get_ipython().ast_node_interactivity = 'all' In [2]: display(1) # appears without Out ...: sys.displayhook(2) # appears with Out ...: 3 # appears with Out (different to above) ...: 4 # appears with Out 1 Out[4]: 2 Out[4]: 3 Out[4]: 4
Beachten Sie, dass das Verhalten in Jupyter genau das gleiche ist wie in Ipython.
quelle