ローカルのjupyter notebookで動かす場合と、KaggleのKernelで動かす場合に、同じコードを使いながら、条件分岐し行うことを変更をしたい場合があります。
(例えば、inputフォルダの位置を変える等)
その場合に、どのように判定すればよいかを説明します。
この記事は、Python: 実行環境が Jupyter Notebook か判定する - CUBE SUGAR CONTAINERを参考にしました。
判定方法
kaggleのKernelの場合は、_dh
が['/kaggle/working']
となります。
そのため、
_dh == ['/kaggle/working']
で、KaggleのKernelであればTrue
、KaggleのKernelでなければばFalse
がかえってきます。
使用例
train.csvを読み込む場合に、KaggleのKernelとKernel以外で行う処理を分けるコードです。
Kernel以外で、フォルダの位置を変更する必要があったり、読み込みが早いpickleやfeatherファイルを作っておいて読み込む処理にしたい場合に使えると思います。
import pandas as pd def get_train(): ``` train.csvを取得する ``` if _dh == ['/kaggle/working']: df = pd.read_csv('../input/train.csv') else: # ここに、Kernelじゃない場合に行うコードを記載 return df
注意事項
kaggleのKernelの仕様の変更により、使えなくなる場合がありますので、確認のうえ使用ください。