Jupyter Notebook 셀에서 값을 연속적으로 모두 출력하려면?

[FAQ] Jupyter Notebook에서 값을 연속적으로 출력하려면?

  • Q: Jupyter Notebook 셀에서 마지막 값 하나만이 아니라 중간에 모든 값을 차례로 출력하고 싶습니다.
  • A: print(), IPython.display를 써서 매번 출력하거나 InteractiveShell의 옵션을 지정합니다.

2017 https://fb.com/financedata , https://financedata.github.io

Jupyter Notebook에서 항상 마지막 값만 출력된다.

In [1]:
import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randn(5, 3), columns=list('ABC'))
lst = np.arange(10)

df
lst
Out[1]:
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

모든 출력값을 매번 연속적으로 출력하려면 어떻게 할까? 즉, df, lst 값을 모두 차례로 출력하려면?

방법 1 - 매번 print()를 사용

In [2]:
print(df)
print(lst)
          A         B         C
0 -0.975347  0.785468 -1.242341
1  0.278320 -2.819004 -1.543017
2  0.012055  0.549362  0.970234
3 -0.985156  1.670095 -0.563928
4 -0.088859  1.582515  0.881899
[0 1 2 3 4 5 6 7 8 9]

방법 2 - display로 출력

DataFrame()을 HTML로 출력하기 위해 print() 대신 IPython.display를 사용할 수 있다.

In [3]:
from IPython.display import display
In [4]:
display(df)
display(lst)
A B C
0 -0.975347 0.785468 -1.242341
1 0.278320 -2.819004 -1.543017
2 0.012055 0.549362 0.970234
3 -0.985156 1.670095 -0.563928
4 -0.088859 1.582515 0.881899
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

방법 3 - InteractiveShell의 옵션 지정

InteractiveShell의 옵션을 지정하여 모두 출력되도록 할 수 있다

InteractiveShell.ast_node_interactivity : 'all' | 'last' | 'last_expr' | 'none' (기본값은 'last_expr')

In [5]:
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
In [6]:
df
lst
'hello, world'
np.arange(10) ** 2
Out[6]:
A B C
0 -0.975347 0.785468 -1.242341
1 0.278320 -2.819004 -1.543017
2 0.012055 0.549362 0.970234
3 -0.985156 1.670095 -0.563928
4 -0.088859 1.582515 0.881899
Out[6]:
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
Out[6]:
'hello, world'
Out[6]:
array([ 0,  1,  4,  9, 16, 25, 36, 49, 64, 81])

댓글

Comments powered by Disqus