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

use*_*202 6 python python-3.x jupyter-notebook

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

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

Jer*_*ass 2

如果您使用 pandas 数据框,那么一种方法是在每个步骤之间使用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'])
Run Code Online (Sandbox Code Playgroud)

然后在notebook1.ipynb中,像这样处理:

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

...并对链中的每个阶段重复该过程。

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

最后,您的笔记本集合将如下所示:

  • 输入.csv
  • 笔记本1.ipynb
  • 笔记本2.ipynb
  • 笔记本3.ipynb
  • 结果1.csv
  • 结果2.csv
  • 结果3.csv

文档: