[pandas] IPython 노트북 셀 다중 출력
IPython Notebook에서이 셀을 실행 중입니다.
# salaries and teams are Pandas dataframe
salaries.head()
teams.head()
결과적으로 와 teams
둘 다가 아닌 데이터 프레임 의 출력 만 얻습니다 . 방금 실행하면 데이터 프레임에 대한 결과를 얻지 만 두 문을 모두 실행하면 . 이 문제를 어떻게 해결할 수 있습니까?salaries
teams
salaries.head()
salaries
teams.head()
답변
display
명령 을 시도 했습니까?
from IPython.display import display
display(salaries.head())
display(teams.head())
답변
더 쉬운 방법 :
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
반복적으로 “디스플레이”를 입력하지 않아도됩니다.
셀에 다음이 포함되어 있다고 가정합니다.
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]
부분이 없습니다.
답변
제공,
print salaries.head()
teams.head()
답변
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]
합니다. 이것은 일반 파이썬에서도 잘 작동합니다! -
display(value)
, 이 답변 에서와 같이 -
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에서와 정확히 동일합니다.