如何将iPython中的数据框复制/粘贴到Google表格或Excel中?

我一直使用iPython(又名Jupyter)来进行数据分析和一些机器学习。 但是一个令人头痛的问题是将笔记本应用程序(浏览器)的结果复制到Excel或Google表格中,以便操作结果或与不使用iPython的用户共享。

我知道如何将结果转换为CSV并保存。 但是之后我必须挖掘我的计算机,打开结果并将其粘贴到Excel或Google表格中。 这需要太多的时间。

只是突出显示一个结果数据框和复制/粘贴通常完全混淆了格式化,列溢出。 (更不用说在iPython中打印的时间长的数据框被截断的问题。)

如何轻松地将iPython结果复制/粘贴到电子表格中?

尝试使用to_clipboard()方法。 例如,对于一个dataframe,df: df.to_clipboard()将把所述dataframe复制到剪贴板。 然后,您可以将其粘贴到Excel或Google文档中。

如果你能够使csv或html可用和URL访问 – 你可以在谷歌表单中使用。

=IMPORTDATA("url to the csv/html file") 

根据我的经验,SpreadSheet使用制表符(\ t)来分隔单元格和换行符(\ n)来分隔行。

假设我写了一个简单的函数来从剪贴板数据转换:

 def from_excel_to_list(copy_text): """Use it to copy and paste data from SpreadSheet software (MS Excel, Libreoffice) and convert to a list """ if isinstance(copy_text, str): array = [] rows = copy_text.split("\n") # splits rows for row in rows: if len(row): # removes empty lines array.append(row.split("\t")) return array else: raise TypeError("text must be string") 

你可以在Jupiter里面定义这个函数,并以这种方式使用它:

在SpreadSheet上用ctrl-c复制,然后调用函数from_excel_to_list在双括号内用ctrl-v粘贴数据

 my_excel_converted = from_excel_to_list("""Paste here with ctrl-v the text""") 

来自ctrl-c的数据:

 NU tot 1 18,236 18,236 17 20,37 346,29 5 6,318 31,59 

调用function:

 from_excel_to_list("""NU tot 1 18,236 18,236 17 20,37 346,29 5 6,318 31,59 """) 

结果在木星:

 [['N', 'U', 'tot'], ['1', '18,236', '18,236'], ['17', '20,37', '346,29'], ['5', '6,318', '31,59']] 

这是进一步阐述的基础。 同样的方法可以用来获得字典,命名为uuple等等。