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?
avez-vous essayé la commande display
?
from IPython.display import display
display(salaries.head())
display(teams.head())
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.
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)
Fournir,
print salaries.head()
teams.head()