我在远程计算机上运行的 jupyter服务器笔记本中有一个数据框说dfdata
。
我想访问远程计算机内存中的数据帧到本地计算机,比如将dfdata
粘贴到Excel。
通常(当笔记本服务器在本地运行时),我会dfdata.to_clipboard()
将数据框复制到剪贴板,现在可以将其粘贴到Excel中。
但是,由于dfdata
现在位于远程计算机上,dfdata.to_clipboard()
没有剪贴板中数据框的副本。
如何使这项工作,即将数据帧从远程机器复制粘贴到本地运行的Excel,Textfile等?任何替代方法,如果设计为to_clipboard()
,由于任何安全限制/限制,将无法跨远程服务器工作。
答案 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
- github 和 pypi。
这应该像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上为我工作。