在Jupyter(ipython)中将两个笔记本合并为一个

40

我有两个不同的Jupyter笔记本,分别用于两个不同的项目。 我想合并它们以将它们都放在同一个笔记本中。

一种方法是将一个笔记本中的单元格复制到另一个笔记本中,但对于包含许多单元格的项目来说,这似乎是相当繁琐的工作。 是否支持导入笔记本文档或同时复制多个单元格的功能?


这篇文章在这里对我来说将一切都澄清了。 - Woodly0
10个回答

26

你可以使用 nbmerge 工具合并笔记本。

用 pip 安装它。

pip install nbmerge

合并您的文件

nbmerge file_1.ipynb file_2.ipynb file_3.ipynb > merged.ipynb

在我的情况下不起作用,因为笔记本有很多图和输出。 - paradocslover
这个程序需要在新的Jupyter Notebook上执行,还是使用Anaconda命令提示符?抱歉如果这是一个愚蠢的问题,我是初学者。 - Ammanuel

15

1
在Jupyter笔记本中,它还不能处理Unicode字符,该问题仍然存在于其GitHub页面中。 - Gabriel Avendaño
5
对我来说使用unicode没问题。将> merged.ipynb替换为-o merged.ipynb - Pavel

11
您确实可以一次复制多个单元格-使用Shift + J或Shift + Down向下选择下一个单元格,在向上方向使用Shift + K或Shift + Up。然后,您可以将它们批量复制并粘贴到另一个笔记本中,并通过确保目标笔记本处于命令模式(单元格具有蓝色边框)来保留单元格分割。

请参见http://jupyter-notebook.readthedocs.io/en/stable/examples/Notebook/Notebook%20Basics.html#https://www.dataquest.io/blog/jupyter-notebook-tips-tricks-shortcuts/


2
这正是我所需要的。非常感谢。 - dom free

8

安装 nbmerge:

pip install nbmerge

运行以下代码:

!nbmerge file_1.ipynb file_2.ipynb file_3.ipynb > merged.ipynb

对于那些错过了惊叹的人的答案


1
请确保您想合并的所有笔记本都在同一个文件夹/目录中,并将这些代码放入新的Jupyter单元格中(请勿忘记感叹号)。
 !nbmerge file_1.ipynb file_2.ipynb file_3.ipynb > merged_ouput.ipynb 

0
我过去使用文本编辑器处理.ipynb文件,已经进行过几次类似的操作。它是一个易于理解的json格式。我的用例是将一系列单元格移动到另一个笔记本中,更多的像是一个归档活动。
请确保您有备份策略,以防您通过遗漏逗号或其他方式破坏json格式!
这样,您最终会得到一个无效的校验和。当您首次打开更改后的笔记本时,会收到警告。保存后,会生成新的校验和,警告消失。

0

将笔记本中的部分内容复制/粘贴到另一个笔记本中是 Jupytext 的一个使用案例。Jupytext 可以将您的笔记本(输入)导出为 .py.md 文件。执行以下任一操作:

jupytext --set-formats ipynb,py --sync *.ipynb

或者

jupytext --set-formats ipynb,md --sync *.ipynb

然后编辑文本文件,将所需的输入从一个文件移动到另一个文件,并使用相应的.ipynb文件进行更新。

jupytext --sync *.ipynb

请注意,此操作仅保留输入未更改的输出。
Jupytext也可作为Jupyter的插件使用。在这种情况下,您无需使用命令行。您可以使用文件/Jupytext菜单(Jupyter Notebook)或Jupytext命令(Jupyter Lab)将笔记本与所需的文本文件进行配对。您只需在浏览器中刷新已配对的笔记本,即可获取已配对文本文件上的最新编辑内容。

0
你应该查看 GitHub 上跟踪此功能的 以下问题。它很可能通过命令行工具实现。该问题还链接到执行此操作的脚本。
在浏览器窗口之间复制和粘贴单元格是一个棘手的问题,因为浏览器安全性通常会阻止获取足够的数据来这样做。在某些情况下,使用一些第三方扩展程序可能是可能的。

0

首先,在与您希望合并的以前笔记本相同的目录中创建一个新的Jupyter Notebook。

在新的Jupyter Notebook中,运行以下命令:pip install nbmerge

然后,重新启动您的内核。

最后,运行以下命令:

!nbmerge your_first_file.ipynb your_second_file.ipynb your_third_file.ipynb -o merged.ipynb

检查您的目录,查看新创建的合并文件(merged.ipynb)。


0

首先,您需要在希望合并的笔记本所在目录中创建一个新的笔记本。

然后输入以下内容:

  1. pip install nbmerge

  2. import nbmerge

  3. !nbmerge name1.ipynb name2.ipynb name3.ipynb -o new_name.ipynb

这应该可以正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接