2017年2月8日 星期三

Python 如何讀.ipynb到另個.ipynb裡?

又是個惱人的東西,每次一想到新的東西想嘗試,就搞老半天
今天想到說之後要寫class,裡面會有一堆function,那一堆的函式基本上就要分開存取才比較方便.於是嘗試該怎樣import 我的函式到我目前的文檔
網路上找到大多是說要建兩個.py檔 :  __init__.py 和  filename.py
然後filename裡放入你的函式,之後在你的文檔中import進去.
遇到問題:
  1.  我因為是用jupyter notebook寫,所以檔案出來格式是  .ipynb
  2.  如果我把.ipynb 轉成.py檔,會變成 json格式 
  3.  解決二的方式為 在.py檔寫入我的函式,但很不智能
  4. import 裡面放的是定義倒沒問題,但如果我import 的是另外一群要import的函式時就會出問題了,說我哪些東西沒定義.

找了老半天終於看到magic的方法了,首先先使用:

%magic #查找是否有支援的功能

發現 %run 可以實現
%run filename  or  %run filename.ipynb

以下是實作:
  1.     首先建立個U.ipynb 檔:
import pandas as pd
import numpy as np

a= pd.DataFrame(np.random.rand(10,3),columns =['R','G','B'])
b= pd.DataFrame(np.random.rand(10,3)+1,columns =['R','G','B'])
d= pd.DataFrame(np.random.rand(10,3)*2,columns =['R','G','B'])
e= pd.DataFrame(np.random.rand(10,3)*3,columns =['R','G','B'])

  1.    (這步驟要不要都可,只是想確認增加路徑是否可行)再來把它存放到Test_Folder裡面:
  1.      新創個ipynb檔:
%run Test_Folder/U.ipynb   

a
代表我的U.ipynb有被導入,且也幫我跑了 a,b,c,d 四個dataframe ,我直接運行就可以了.

結論: 
  1. 之後我可以把function給分門別類的另外存取了.
  2. 以後也可以把需要import的一次都寫好,再一次import就好
  3. 之後搭配class應用




這封郵件來自 Evernote。Evernote 是您專屬的工作空間,免費下載 Evernote

0 意見:

張貼留言

Contact

Get in touch with me


Adress/Street

12 Street West Victoria 1234 Australia

Phone number

+(12) 3456 789

Website

www.johnsmith.com