2017-10-10 32 views
4

我有3个单独的jupyter笔记本文件处理单独的数据帧。我为每个df清理和处理这些笔记本中的数据。有没有办法在单独的笔记本中引用清理/最终数据?从一个Jupyter笔记本文件导入数据帧到另一个

我担心的是,如果我在一个笔记本上使用所有3个dfs,然后在合并/连接之后对它进行更多操作,它将会长达一英里。我也不想重新编写一堆代码来让数据准备好在我的新笔记本中使用。

回答

0

如果您使用的是熊猫数据框,则一种方法是使用pandas.DataFrame.to_csv()pandas.read_csv()在每个步骤之间保存和加载清理的数据。

  1. Notebook1加载input1并保存result1。
  2. Notebook2加载result1并保存result2。
  3. Notebook3加载result2并保存result3。

如果这是你的数据:

import pandas as pd 
raw_data = {'id': [10, 20, 30], 
      'name': ['foo', 'bar', 'baz'] 
      } 
input = pd.DataFrame(raw_data, columns = ['id', 'name']) 

然后在notebook1.ipynb,它的过程是这样的:

# load 
df = pd.read_csv('input.csv', index_col=0) 
# manipulate frame here 
# ... 
# save 
df.to_csv('result1.csv') 

...并重复这一过程,链中的每个阶段。

# load 
df = pd.read_csv('result1.csv', index_col=0) 
# manipulate frame here 
# ... 
# save 
df.to_csv('result2.csv') 

最后,你的笔记本集合将是这样的:

  • input.csv
  • notebook1.ipynb
  • notebook2.ipynb
  • notebook3.ipynb
  • RESULT1 .csv
  • result2.csv
  • result3.csv

文档: