将数据框从一个Jupyter Notebook文件导入另一个

时间:2017-10-10 19:01:49

标签: python python-3.x jupyter-notebook

我有3个独立的jupyter笔记本文件,用于处理单独的数据帧。我为每个df清理和操作这些笔记本中的数据。有没有办法在单独的笔记本中引用清理/最终数据?

我担心的是,如果我在一个笔记本中处理所有3个dfs,然后在(合并/加入)之后使用它做更多,那么它将是一英里长。我也不想重新编写一堆代码,只是为了准备好在我的新笔记本中使用的数据。

1 个答案:

答案 0 :(得分:1)

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

  1. Notebook1加载input1并保存result1。
  2. Notebook2加载result1并保存result2。
  3. Notebook3加载result2并保存result3。
  4. 如果这是您的数据:

    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

    文档: