2015-12-21 15 views
21

私はIPythonのノートブックでは、このセルを実行しています:IPythonノートセル複数の出力

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

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

答えて

45

あなたはdisplayコマンドを試してみましたか?

from IPython.display import display 
display(salaries.head()) 
display(teams.head()) 
+0

うわー...元気。それはまさに私が望んでいた方法で働いた – Lokesh

+1

本当に素敵です。 –

+0

私が探していたもの - 感謝! – saml

3

IPython Notebookには、セル内の最後の戻り値のみが表示されます。あなたの場合の最も簡単な解決策は、2つのセルを使用することです。

あなたが本当には、このようなをハックないことができる唯一の一つのセルが必要な場合:

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) 

2つ以上のヘッドのバージョン:

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) 
1

提供し、

print salaries.head() 
teams.head() 
+1

いいが、 '印刷salaries.headの出力を入力すること)'うまくフォーマットされていません。 – Lokesh

25

簡単な方法:それはセーブ

from IPython.core.interactiveshell import InteractiveShell 
InteractiveShell.ast_node_interactivity = "all" 

あなたは(繰り返し "表示"

+0

これは新しいですか? 私はこのオプションを数年前に見たことはありません。 – tglaria

+0

私は更新されたドキュメントでそれを見ていません:http://ipython.readthedocs.io/en/stable/api/generated/IPython.core.interactiveshell.html#IPython.core.interactiveshell.InteractiveShell しかしです"Terminal" IPythonのオプション:http://ipython.readthedocs.io/en/stable/config/options/terminal.html – tglaria

+1

ああ、私はそれに答えることができたらいいと思う。私は数ヶ月前に別の質問でそれを見て覚えている(私はソースができたらいいと思う)、それは私のバックポケットに保管しているので、それは完全に働いた。 –

関連する問題