pythonモジュールを作成して、pandas DataFrame(my_df
)。
ユーザーがモジュールをJupyterノートブックにインポートする場合、次のようなものを使用して、DataFrameの「きれいな」フォーマットを提供したいと思います。
from IPython.display import display, HTML
display(my_df)
ユーザーがJupyterノートブックを使用していない場合は、DataFrameのテキスト形式を表示したいと思います。
print(my_df)
コードがJupyterノートブックから実行されているかどうかを確認するにはどうすればよいですか?または、コマンドラインからテキスト形式でDataFrameを表示するのに対して、Jupyterノートブックにインポートした場合にHTMLフォームを表示するにはどうすればよいですか?
from IPython.display import display, HTML
def my_func(my_df):
if [... code to check for Jupyter notebook here ...]:
display(my_df)
else:
print(my_df)
コードがノートブックから実行されているかどうかを確認する必要はありません。 display()
は、コマンドラインから呼び出されたときにテキストを出力します。
test.py
:
from IPython.display import display
import pandas as pd
my_df = pd.DataFrame({'foo':[1,2,3],'bar':[7,8,9]})
display(my_df)
コマンドラインから:
$ python test.py
bar foo
0 7 1
1 8 2
2 9 3
Jupyter Notebookから:
[〜#〜]更新[〜#〜]
インタラクティブなIpythonシェル(コマンドラインまたはブラウザーベース)内で実行しているかどうかを確認するには、get_ipython
を確認します。 ( Ipython ドキュメントから採用)
変更されたtest.py
:
from IPython.display import display, HTML
import pandas as pd
my_df = pd.DataFrame({'foo':[1,2,3],'bar':[7,8,9]})
try:
get_ipython
display(my_df)
except:
print(my_df)
このアプローチは次のようになります。
-ブラウザでプリティプリントJupyterノートブック
-コマンドラインからスクリプトとして実行するとテキストを出力します(例:python test.py
)
-Pythonシェルで1行ずつ実行すると、印刷後にインタラクティブなIpythonシェルになりません
Os.environを確認する必要があります。
私のマシンでは、
os.environ['_']