Estoy ejecutando esta celda en IPython Notebook:
# salaries and teams are Pandas dataframe
salaries.head()
teams.head()
El resultado es que solo obtengo el resultado del teams
marco de datos en lugar de ambos salaries
y teams
. Si solo ejecuto salaries.head()
, obtengo el resultado para salaries
el marco de datos, pero al ejecutar ambas declaraciones, solo veo el resultado de teams.head()
. ¿Cómo puedo corregir esto?
pandas
jupyter-notebook
ipython
Lokesh
fuente
fuente
Respuestas:
has probado el
display
comando?from IPython.display import display display(salaries.head()) display(teams.head())
fuente
display()
está automáticamente disponible para el usuario sin importar".from IPython.display import display
Una forma más sencilla:
from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity = "all"
Le ahorra tener que escribir repetidamente "Pantalla"
Digamos que la celda contiene esto:
from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity = "all" a = 1 b = 2 a b
Entonces la salida será:
Out[1]: 1 Out[1]: 2
Si usamos
IPython.display.display
:from IPython.display import display a = 1 b = 2 display(a) display(b)
La salida es:
1 2
Entonces lo mismo, pero sin la
Out[n]
parte.fuente
get_ipython().ast_node_interactivity = 'all'
, no reemplazar la propiedad de clase con una cadena constante!Proporcionar,
print salaries.head() teams.head()
fuente
print salaries.head()
no está bien formateada.IPython Notebook muestra solo el último valor de retorno en una celda. La solución más sencilla para su caso es utilizar dos celdas.
Si realmente necesita solo una celda, puede hacer un truco como este:
class A: def _repr_html_(self): return salaries.head()._repr_html_() + '</br>' + teams.head()._repr_html_() A()
Si necesita esto a menudo, conviértalo en una función:
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:
Una versión para más de dos cabezas:
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()
Uso:
fuente
Enumerando todas las soluciones:
sys.displayhook(value)
, al que se conecta IPython / jupyter. Tenga en cuenta que esto se comporta de forma ligeramente diferente a la llamadadisplay
, ya que incluye elOut[n]
texto. ¡Esto también funciona bien en Python normal!display(value)
, como en esta respuestaget_ipython().ast_node_interactivity = 'all'
. Esto es similar pero mejor que el enfoque adoptado por esta respuesta .Comparando estos en una sesión interactiva:
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
Tenga en cuenta que el comportamiento en Jupyter es exactamente el mismo que en ipython.
fuente