技術メモ

1. ~.py起動時とJupyter(python対話モード)起動時の相違 

カレントディレクトリ参照の表記方法 

通常起動(dirに'C:\~'の文字列?で保存される')

os.path.dirname(__file__)

対話モードではこれが使えないらしい

from pathlib import Pathを付けて 
os.path.dirname(os.path.abspath(sys.argv[0]))

相対パスならrelpathになる

想定ユーザが複数人の場合は↑の書き方 

1人のシミュレーションとかなら直接ディレクトリ書いた方が早い?

JupiterだとJupiterが入ってるディレクトリ参照されるっぽい 

→実行の度にカレントディレクトリが移動していたので対話モードでは直接示した方が良さそう


2. 関数定義のdef内でデータフレームを表示しようとしても呼び出しの際に出てこない 

対処法2つ 

関数にしないで普通の処理で書き連ねる 

関数内ににデータフレームを表示させる関数を作る(まだ調べていない) 


3. データフレームの要素参照ilocの表記 [#w8412be8] 

df.iloc[][]とすると挙動がおかしくなる 

iloc[1][1]で[1][2]の要素が参照されたり、for文でKeyError:0([0][0]などがない)が出たりする(Jupyterではfor文は正常?)
→iloc[行,列]にしていれば問題なし

df.iloc[0,1:N]は0行目の1からN-1列の要素まで取ってくる 

list index out of range系のエラーが出るときにたいていこのミスしてる


4. R言語環境をjupyterで実装 

(1)R言語専用の仮想環境作成 

バージョンを確認して,新環境にpythonインストール
(Rlangは仮想環境名なので好きな名前でOK)

python -V
conda create -n Rlang python=3.6 -y
anaconda prompt上でbaseから作成した仮想環境に移動
conda activate Rlang

新仮想環境上にjupyter導入

pip install jupyter environment_kernels

参照:
https://nxdataka.netlify.app/rjup/

(2)jupyter内用のR環境(Rカーネル)インストール 

従来なら r channelからパッケージがインストールされていたが,停止したため conda-forge channelから導入(参考: https://qiita.com/wasser/items/de6bd837969c4c3a3aa9 )

conda install r-irkernel -c conda-forge
conda install r-essentials -c conda-forge

(3)jupyterに仮想環境パス追加 

→Rterm.exeから「~~~.dllが見つからない」とシステムエラーが表示され,base本体のJupyter環境に影響が及ぶため,解決するまで非推奨

仮想環境パスが追加されているかの確認

(base) C:\Users\User_name>conda config --show envs_dirs
envs_dirs:
 - C:\Users\User_name\anaconda3\envs
 - C:\Users\User_name\.conda\envs
 - C:\Users\User_name\AppData\Local\conda\conda\envs

baseに戻ってJupyter設定用ファイルを作成&編集

conda deactivate(または conda activate base で元に戻る)
(base) C:\Users\User_name>jupyter notebook --generate-config
Writing default config to: C:\Users\User_name\.jupyter\jupyter_notebook_config.py

保存されたディレクトリ先にあるjupyter_notebook_config.py内を編集

#c.NotebookApp.kernel_spec_manager_class = 'jupyter_client.kernelspec.KernelSpecManager'

この1行が書かれているところを探し,この下に非コメントアウトで2行追加

c.NotebookApp.kernel_spec_manager_class='environment_kernels.EnvironmentKernelSpecManager'
c.EnvironmentKernelSpecManager.conda_env_dirs=['C:/Users/User_name/anaconda3/envs']

参照:
https://www.servernote.net/article.cgi?id=anaconda-jupyter-notebook-on-myenv


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS