我在IPython Notebook中运行此单元格:
# salaries and teams are Pandas dataframe
salaries.head()
teams.head()
结果是我只得到teams
数据帧的输出,而不是salaries
和的输出teams
。如果我只是运行,salaries.head()
则会得到salaries
数据帧的结果,但是在运行这两个语句时,我只会看到的输出teams.head()
。我该如何纠正?
我在IPython Notebook中运行此单元格:
# salaries and teams are Pandas dataframe
salaries.head()
teams.head()
结果是我只得到teams
数据帧的输出,而不是salaries
和的输出teams
。如果我只是运行,salaries.head()
则会得到salaries
数据帧的结果,但是在运行这两个语句时,我只会看到的输出teams.head()
。我该如何纠正?
Answers:
您是否尝试过该display
命令?
from IPython.display import display
display(salaries.head())
display(teams.head())
display()
无需导入即可自动提供给用户。”
from IPython.display import display
一种更简单的方法:
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
它省去了您重复输入“ Display”的麻烦
说单元格包含以下内容:
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
a = 1
b = 2
a
b
然后输出将是:
Out[1]: 1
Out[1]: 2
如果我们使用IPython.display.display
:
from IPython.display import display
a = 1
b = 2
display(a)
display(b)
输出为:
1
2
同样,但没有内容Out[n]
。
get_ipython().ast_node_interactivity = 'all'
,而不是用常量字符串替换class属性!
IPython Notebook仅显示单元格中的最后一个返回值。针对您的情况,最简单的解决方案是使用两个单元。
如果你真的只需要一个电池,你可以做一个黑客就像这样:
class A:
def _repr_html_(self):
return salaries.head()._repr_html_() + '</br>' + teams.head()._repr_html_()
A()
如果您经常需要此功能,请将其设为功能:
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()
用法:
show_two_heads(salaries, teams)
有两个以上版本的版本:
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()
用法:
show_many_heads(salaries, teams, df1, df2)
列举所有解决方案:
sys.displayhook(value)
,这是IPython / jupyter所钩挂的。请注意,此行为与调用稍有不同display
,因为它包含Out[n]
文本。在常规python中也可以正常工作!
get_ipython().ast_node_interactivity = 'all'
。这类似于但优于此答案的方法。
在交互式会话中进行比较:
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
请注意,Jupyter中的行为与ipython中的行为完全相同。