read - pandas style
IPython Notebook cell salidas mĂșltiples (4)
¿Has probado el comando de
display
?
from IPython.display import display
display(salaries.head())
display(teams.head())
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 marco de datos de los
teams
en lugar de los
salaries
y los
teams
.
Si solo ejecuto
salaries.head()
obtengo el resultado para el marco de datos de
salaries
, pero al ejecutar tanto la declaración solo veo la salida de
teams.head()
.
¿Cómo puedo corregir esto?
IPython Notebook muestra solo el último valor de retorno en una celda. La solución más fácil para su caso es usar 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 con frecuencia, hágalo 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:
show_two_heads(salaries, teams)
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:
show_many_heads(salaries, teams, df1, df2)
Proporcionar,
print salaries.head()
teams.head()
Una forma más fácil:
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)
El resultado es:
1
2
Lo mismo, pero sin la parte
Out[n]
.