我最近一直在使用iPython(又名Jupyter)进行数据分析和一些机器学习。但令人头疼的是将笔记本应用程序(浏览器)的结果复制到Excel或Google表格中,这样我就可以操纵结果或与不使用iPython的人分享。
我知道如何将结果转换为csv并保存。但后来我必须挖掘我的电脑,打开结果并将它们粘贴到Excel或Google表格中。这需要太多时间。
只是突出显示结果数据框并复制/粘贴通常会完全混乱格式化,列溢出。 (更不用说在iPython中打印时被截断的长数据帧被截断的问题。)
如何轻松地将iPython结果复制/粘贴到电子表格中?
答案 0 :(得分:21)
尝试使用to_clipboard()方法。例如,对于数据帧,df: df.to_clipboard()会将所述数据帧复制到剪贴板。然后,您可以将其粘贴到Excel或Google文档中。
答案 1 :(得分:1)
将输出粘贴到 Atom 等 IDE,然后粘贴到 Google Sheets/Excel
答案 2 :(得分:0)
如果您能够通过网址提供csv或html并且可以访问 - 您可以在Google工作表中使用此功能。
=IMPORTDATA("url to the csv/html file")
答案 3 :(得分:0)
根据我的经验,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的数据:
N U tot
1 18,236 18,236
17 20,37 346,29
5 6,318 31,59
调用函数:
from_excel_to_list("""N U 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']]
这是进一步阐述的基础。 可以使用相同的方法来获取字典,namedtuple等。
答案 4 :(得分:0)
如果df.to_clipboard
不起作用。这会起作用。
import io
with io.StringIO() as buffer:
df.to_csv(buffer, sep=' ', index=False)
print(buffer.getvalue())
然后,您可以复制打印的数据框并将其粘贴到Excel或Google表格中。