私はこのセルを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]
部分はありません。
IPython Notebookは、セル内の最後の戻り値のみを表示します。この場合の最も簡単な解決策は、2つのセルを使用することです。
本当に必要なセルが1つだけの場合は、次のようにhackを実行できます。
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)
3つ以上のヘッドのバージョン:
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)
提供する、
print salaries.head()
teams.head()