jupyter服务器dfdata.to_clipboard从远程到本地机器。怎么样?

时间:2017-10-03 14:42:16

标签: pandas jupyter-notebook

我在远程计算机上运行的 jupyter服务器笔记本中有一个数据框说dfdata

我想访问远程计算机内存中的数据帧到本地计算机,比如将dfdata粘贴到Excel。

通常(当笔记本服务器在本地运行时),我会dfdata.to_clipboard()将数据框复制到剪贴板,现在可以将其粘贴到Excel中。

但是,由于dfdata现在位于远程计算机上,dfdata.to_clipboard()没有剪贴板中数据框的副本。

如何使这项工作,即将数据帧从远程机器复制粘贴到本地运行的Excel,Textfile等?任何替代方法,如果设计为to_clipboard(),由于任何安全限制/限制,将无法跨远程服务器工作。

3 个答案:

答案 0 :(得分:3)

I wrote a Jupyter nbextension to do this(自述文件中的安装说明)。

它覆盖了Panda的pandas.io.clipboard.copy& pandas.io.clipboard.clipboard_set(这是pyperclip的嵌入式副本)通过Comm机制向Jupyter前端发送消息。我不得不添加一个简单的基于引导程序的UI,当客户端JS收到消息时弹出,因为浏览器won't let you将数据推送到系统剪贴板而没有明确的用户交互(安全!)。

答案 1 :(得分:2)

作为替代,您可以使用 copydf - githubpypi

这应该像pip install copydf一样简单。

然后在您的 jupyter 会话中:

from copydf import copyDF
copyDf( df )

答案 2 :(得分:0)

如果您有另一个终端会话连接到同一个远程服务器,您可以尝试让剪贴板系统输出到终端。

我在另一个ssh会话中尝试xclip -o(在笔记本中调用df.to_clipboard()之后),并将我的DataFrame的内容打印到终端。我能够复制该文本并将其成功粘贴到Google表格,正确拆分为列。

可能取决于服务器上安装的内容。显然有一个名为xsel的剪贴板系统,但xclip在Ubuntu Server 16.04上为我工作。