web-dev-qa-db-ja.com

IPython Notebookセルの複数出力

私はこのセルをIPython Notebookで実行しています:

_# salaries and teams are Pandas dataframe
salaries.head()
teams.head()
_

その結果、teamssalariesの両方ではなく、teamsデータフレームの出力しか取得できません。 salaries.head()を実行すると、salariesデータフレームの結果が得られますが、両方のステートメントを実行すると、teams.head()の出力が表示されます。どうすれば修正できますか?

56
Lokesh

displayコマンドを試しましたか?

from IPython.display import display
display(salaries.head())
display(teams.head())
95
tglaria

より簡単な方法:

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]部分はありません。

66
Aru Singh

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)
4
Mike Müller

提供する、

print salaries.head()
teams.head()
4
WoodChopper